重点在函数中建 engine
在外部声明基类和模型
Base = declarative_base()class User(Base):__tablename__='users' # 数据库的表名id = Column(Integer,primary_key=True,autoincrement=True) # 主键;自增(默认就是True)name = Column(String(32),nullable=False) # 不为空email = Column(String(32),unique=True) # 唯一ctime = Column(DateTime,default=datetime.datetime.now) # 默认值extra = Column(Text) # 大文本
def create_table():engine = create_engine('mysql+pymysql://root:root@127.0.0.1:3306/test?charset=utf8',max_overflow=0,pool_size=5,pool_timeout=30,pool_recycle=-1)Base.metadata.create_all(engine) # 通过engine对象创建
作者:Py应用领域
链接:https://www.zhihu.com/question/42240205/answer/2335079369
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。import datetime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer,String,Text,ForeignKey,DateTime,UniqueConstraint,Index
from sqlalchemy import create_engine#1.创建一个类作为所有模型类的基类
Base = declarative_base()class User(Base):__tablename__='users' # 数据库的表名id = Column(Integer,primary_key=True,autoincrement=True) # 主键;自增(默认就是True)name = Column(String(32),nullable=False) # 不为空email = Column(String(32),unique=True) # 唯一ctime = Column(DateTime,default=datetime.datetime.now) # 默认值extra = Column(Text) # 大文本#2.创建表
def create_table():engine = create_engine('mysql+pymysql://root:root@127.0.0.1:3306/test?charset=utf8',max_overflow=0,pool_size=5,pool_timeout=30,pool_recycle=-1)Base.metadata.create_all(engine) # 通过engine对象创建表,只要是继承Base的类,都会被创建出来表#3.删除表
def drop_table():engine = create_engine('mysql+pymysql://root:root@127.0.0.1:3306/test?charset=utf8',max_overflow=0,pool_size=5,pool_timeout=30,pool_recycle=-1)Base.metadata.drop_all(engine) # 通过engine对象删除表,只要是Base管理的表,都会被删除if __name__ == '__main__':# create_table()drop_table()#存在问题:sqlachemy不支持创建数据库和修改表字段
参考
https://www.zhihu.com/question/42240205