python sqlalchemy mysql 自动映射
生活随笔
收集整理的這篇文章主要介紹了
python sqlalchemy mysql 自动映射
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQLAlchemy是Python編程語言下的一款ORM框架,該框架建立在數據庫API之上,使用關系對象映射進行數據庫操作
簡言之便是:將對象轉換成SQL,然后使用數據API執行SQL并獲取執行結果
?
SQLAlchemy本身無法操作數據庫,其必須依賴pymsql等第三方插件,Dialect用于和數據API進行交流,根據配置文件的不同調用不同的數據庫API,從而實現對數據庫的操作.
以下列舉了幾種常用插件的數據庫url格式:
MySQL-Pythonmysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>pymysqlmysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]MySQL-Connectormysql+mysqlconnector://<user>:<password>@<host>[:<port>]/<dbname>cx_Oracleoracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value...]本文使用 pymysql 插件:
安裝:
# 安裝pymysql插件 pip install pymysql # 安裝sqlalchemy pip install sqlalchemy安裝成功后即可使用:
本實例用法為表已經存在, ORM 自動映射類:
from datetime import datetime from sqlalchemy.ext.automap import automap_base from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine# 數據庫連接url DB_CONNECT_STRING = 'mysql+pymysql://username:password@address:port/database'# 創建引擎 engine = create_engine(DB_CONNECT_STRING, echo=True)# 自動映射 Base = automap_base() Base.prepare(engine,reflect=True)# 獲取所有表的映射類 tables = Base.classes.keys()# 獲取指定類user表 --> user實體類 user = Base.classes.user# 查看user #print(user.__dict__)# 獲取所有字段或屬性 keys = test_case.__table__.columns.keys()# 創建session Session = sessionmaker(bind=engine) session = Session()# 查表,返回實例列表 result = session.query(test_case).all()# 按條件查表, 返回實例集合 ret = session.query(test_case).filter_by(name='zhangsan').all()# 創建新的實例,并插入,nowtime字段為TIMESTAMP newUser = user(name='lisi', age=10, nowtime=datetime.now()) session.add(newUser)# 提交 session.commit()?
參考:
Python操作MySQL之SQLAlchemy:https://www.cnblogs.com/ccorz/p/5711955.html
python操作數據庫常用工具:?https://foofish.net/python-mysql.html
?
轉載于:https://www.cnblogs.com/yelao/p/11003161.html
總結
以上是生活随笔為你收集整理的python sqlalchemy mysql 自动映射的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vuex第三弹vuex之actions(
- 下一篇: SD-WAN的C级视图