SQLAlchemy是Python編程語言下的一款ORM框架,該框架創建在數據庫API之上,使用關係對象映射進行數據庫操做html
簡言之即是:將對象轉換成SQL,而後使用數據API執行SQL並獲取執行結果python
SQLAlchemy自己沒法操做數據庫,其必須依賴pymsql等第三方插件,Dialect用於和數據API進行交流,根據配置文件的不一樣調用不一樣的數據庫API,從而實現對數據庫的操做.mysql
如下列舉了幾種經常使用插件的數據庫url格式:sql
MySQL-Python mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname> pymysql mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>] MySQL-Connector mysql+mysqlconnector://<user>:<password>@<host>[:<port>]/<dbname> cx_Oracle oracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value...]
本文使用 pymysql 插件:數據庫
安裝:編程
# 安裝pymysql插件 pip install pymysql # 安裝sqlalchemy pip install sqlalchemy
安裝成功後便可使用:session
本實例用法爲表已經存在, ORM 自動映射類:oracle
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:http://www.javashuo.com/article/p-ybrpzelk-gv.html編程語言
python操做數據庫經常使用工具: https://foofish.net/python-mysql.html