SqlAlchemy
-
SQLAlchemy 官网
https://www.sqlalchemy.org -
廖雪峰
https://www.liaoxuefeng.com/wiki/897692888725344/955081460091040
SQLAlchemy 是什么?
SQLAlchemy SQL工具包和对象关系映射器 是一组用于处理数据库和Python的全面工具。
它具有几个不同的功能区域,可以单独使用或组合在一起使用。
其主要组件如下图所示,组件依赖性分为几个层次:
以上,SQLAlchemy的两个最重要的前端部分是对象关系映射器和 SQL表达式语言。SQL表达式可以独立于ORM使用。在使用ORM时,SQL表达式语言仍然是面向公众的API的一部分,因为它在对象关系配置和查询中使用。
安装
$ sudo pip install sqlalchemy
使用
配置引擎
from sqlalchemy.engine import create_engine
conn_url = 'mysql://root:123456@127.0.0.1:3306/testlogin?charset=utf8'
# echo=True 将操作指令显示到控制台
engine = create_engine(conn_url, encoding='utf-8', echo=True)
声明ORM基类
(这个基类的子类会自动和数据库表进行关联)
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base(bind=engine)
创建ORM类
# 导入列和数据类型
from sqlalchemy import Column # 列
from sqlalchemy.types import Integer,String,Date,DateTime,Float,Text # 字段类型
class User(Base):
__tablename__='t_cuser'
id = Column(Integer,primary_key=True,autoincrement=True)
account = Column(String(length=8),unique=True)
pwd = Column(String(length=3))
birth = Column(Date)
score = Column(Float(decimal_return_scale=2))
def __repr__(self):
return '[User:%s,%s]'%(self.id,self.account)
class Address(Base):
__tablename__='t_addr'
id = Column(Integer,primary_key=True,autoincrement=True)
aname = Column(String(30),unique=True)
利用基类创建数据库表
#如果表已经存在,则不执行当前存在表的创建操作
Base.metadata.create_all()
# 利用基类删除所有的数据库表
Base.metadata.drop_all()
相关资料
- 廖雪峰 使用SQLAlchemy
https://www.liaoxuefeng.com/wiki/897692888725344/955081460091040