案例代码
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,INTEGER,String,DECIMAL
from sqlalchemy.orm import sessionmaker
username='root'
passwd='root'
port=3306
ip_dz='127.0.0.1'
database='aaa'
db_url="mysql+pymysql://{}:{}@{}:{}/{}".format(username,passwd,ip_dz,port,database)
engine=create_engine(db_url)
Base=declarative_base(engine)
class Aaa(Base):
__tablename__='class1'
id=Column(INTEGER,autoincrement=True,primary_key=True,nullable=False)
name=Column(String(10),nullable=False)
uid=Column(DECIMAL(10,5))
Base.metadata.create_all()
Session=sessionmaker(bind=engine)
session=Session()
user01=Aaa(name='user01',uid=2.232)
session.add(user01)
session.commit()
2. 各个类型
is_delete=Column(Boolean)
user01=Aaa(name='user01',uid=2.232,is_delete=True)
gender=Column(Enum("男","女"))
user01=Aaa(name='user01',uid=2.232,is_delete=True,gender="男")
time=Column(DateTime)
user01=Aaa(name='user01',uid=2.232,is_delete=True,gender="男",time=datetime(2020,10,31,17,38,30))
from sqlalchemy.dialects.mysql import LONGTEXT
longtext=Column(LONGTEXT)
user01=Aaa(name='user01',uid=2.232,is_delete=True,gender="男",time=datetime(2020,10,31,17,38,30),longtext="xxxxxxxxxxx")
3. Column常用参数 和 聚合函数
3.1 Column常用参数
- default:默认值。
- nullable:是否为空。
- primary_key:是否是为主键。
- unique:是否唯一。
- autoincrement:是否自增长。
- onupdate:更新的时间执行的函数。
- name:该属性在数据库中的字段映射。
3.2 聚合函数
- func.count:统计行的数量。
- func.avg:求平均值。
- func.max:求最大值。
- func.min:求最小值。
- func.sum:求和。
from sqlalchemy import func
data=session.query(func.count(Aaa.name)).all()
print(data)