赞
踩
sqlAlchemy解读: https://zhuanlan.zhihu.com/p/265224273
sqlAlchemy解读:https://www.cnblogs.com/ybjourney/p/11832045.html
特点是操纵Python对象而不是SQL查询,也就是在代码层面考虑的是对象,而不是SQL,体现的是一种程序化思维,这样使得Python程序更加简洁易懂。
具体的实现方式是将数据库表转换为Python类,其中数据列作为属性,数据库操作作为方法。
abstract # 辅助sqlAlchemy实现类的继承,自动继承属性,省去super()
SQLAlchemy定义的ORM,在继承父级ORM时候,Foreign Key外键是不能继承的,它强制要求在子类中重新定义。
在使用sqlalchemy访问数据库的时候,以类的形式表示表格,因此在使用之前,需要先定义类。
类的定义有三种:基类BASE、父类、子类
基类是sqlalchemy底层的;当需要一份数据切分为多个子表的时候,或多个表的字段一致时,可以使用一个父类定义字段的类型,多个子表继承父类的属性。
通过创建引擎、绑定引擎来创建会话,实现数据库的访问。
from sqlalchemy import create_engine # 引擎
from sqlalchemy.orm import sessionmaker # 创建orm的会话池,orm和sql均可以管理对象关系型数据库,需要绑定引擎才可以使用会话,
# 创建连接
engine = create_engine("mysql+pymysql://root:1234;@127.0.0.1/test", # 需要安装mysql和pymysql的模块,用户名:密码@ip地址/某个数据库
#echo=True, # 打印操作对应的SQL语句
pool_size=8, # 连接个数
pool_recycle=60*30 # 不使用时断开
)
# 创建session
DbSession = sessionmaker(bind=engine) # 会话工厂,与引擎绑定。
session = DbSession() # 实例化
session.close() # 关闭会话
在使用sqlalchemy访问数据库的时候,以类的形式表示表格,因此在使用之前,需要先定义类。使用类的名称而不是tablename实现之后的增删改查。
# 导入定义类需要的模块
from sqlalchemy.ext.declarative import declarative_base # 调用sqlalchemy的基类
from sqlalchemy import Column, Index, d
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。