SqlAlchemy使用详解

python之sqlalchemy创建表的实例详解

通过sqlalchemy创建表需要三要素:引擎,基类,元素

from sqlalchemy import create_engine 
from sqlalchemy.ext.declarative import declarative_base  
from sqlalchemy import Column,Integer,String

引擎:也就是实体数据库连接

engine = create_engine('mysql+pymysql://godme:godme@localhost/godme',encoding='utf-8',echo=True)

传入参数:数据库类型+连接库+用户名+密码+主机,字符编码,是否打印建表细节

基类:

Base = declarative_base()

元素:

class User(Base): 
  __tablename__ = 'user' 
  id = Column(Integer,primary_key=True)  
  name = Column(String(32)) 
  password = Column(String(64))

通过基本元素:

__tablename__:指定表名
Column:行声明,可指定主键
Integer:数据类型
String:数据类型,可指定长度

如何指定使用 InnoDB,以及使用 UTF-8 编码?
最简单的方式就是修改数据库的默认配置。如果非要在代码里指定的话,可以这样:

class User(BaseModel):
    __table_args__ = {
        'mysql_engine': 'InnoDB',
        'mysql_charset': 'utf8'
    }

创建:

Base.metadata.create_all(engine)

基本过程:

1. 获取实体数据库连接
2. 创建类,继承基类,用基本类型描述数据库结构
3. 基类调用类结构,根据描述在引擎上创建数据表

设置联合唯一

    __table_args__=(
        UniqueConstraint("student_id","hobby_id",name="uix_student_id_hobby_id"),
    )

猜你喜欢

转载自www.cnblogs.com/zjchao/p/8988912.html