首页 > 代码库 > SQLAchemy

SQLAchemy

SQLAchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据库PAI执行SQL并获取执行结果。

技术分享

SQLAchemy本身无法操作数据库,必须以第三方插件,Dialect用于和数据库PAI进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作。

技术分享
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...]

  

更多详见:http://docs.sqlalchemy.org/en/latest/dialects/index.html
说明

一、底层处理
使用Engine/ConnectionPoolling/Dialect进行数据库操作,Engine使用ConnectionPooling连接数据库,然后再通过Dialect执行SQL语句。

技术分享
from sqlalchemy import create_engine

engine = create_engine("mysql+pymysql://test:123456@192.168.254.129/test", max_overflow=5)
# 执行sql语句
# cur = engine.execute(
#     "insert into sanguo (name,age) values (‘zhangzhao‘,38)"
# )
# # 新插入行自增id
# new_id = cur.lastrowid
# print(new_id)
# cur = engine.execute("select * from sanguo where id > 5")
# 获取一行数据
# ret = cur.fetchone()
# 获取第n行数据
# cur.fetchmany(3)
# 获取所有数据
# cur.fetchall()
# cur = engine.execute("insert into sanguo (name,age) VALUES (%s,%s)",[(‘lvbu‘,21),(‘yuanshao‘,27)])
# print(ret)
示例

二、ORM功能使用:
使用ORM/Schema TYpe/SQL Expression Language/Engine/ConnectionPooling/Dialect所有组件对数据进行操作。根据类创建对象,对象转换成SQL,执行SQL。

 

SQLAchemy