美文网首页
SQLAlchemy常用字段

SQLAlchemy常用字段

作者: _LC | 来源:发表于2018-07-14 02:28 被阅读0次

    安装:sudo pip3 install sqlalchemy

    model定义

    首先导入from sqlalchemy.ext.declarative import declarative_base
    然后创建一个实例,Base=declarative_base(),后面所有定义的model都是Base的子类,继承Base。
    model中一条数据类似于Excel的行,使用Column。

    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column,Integer,String
    
    Base=declarative_base()
    
    class User(Base):
        __tablename__='user'
    
        id=Column(Integer,primary_key=True,autoincrement=True)
        name=Column(String(20),unique=True,nullable=False)
        pwd=Column(String(100),nullable=False)
        info=Column(Text)
        def __repr__(self):
            return '<User %r>'%self.name
    

    数据库的连接

    from sqlalchemy import create_engine
    eng=create_engine(DB_URI)
    

    DB_URI的格式如下:dialect+driver://username:password@host:port/database
    例如Mysql,DB_URI=mysql+mysqlclient://scott:tiger@localhost/foo

    1.常用字段类型

    类型 python中类型 说明
    Integer int 普通整数,一般是32位
    SmallInteger int 取值范围小的整数,一般是16位
    BigInteger int/long 不限制精度的整数
    Float float 浮点数
    Numeric decimal.Decimal 普通整数,一般是32位
    String str 变长字符串,一般String(10)注明长度
    Text str 变长字符串,对较长或不限长度的字符串做了优化,不用指明长度
    Unicode unicode 变长Unicode字符串
    UnicodeText unicode 变长Unicode字符串,对较长或不限长度的字符串做了优化
    Boolean boolean 布尔值
    Date datetime.date 时间
    Time time 时间和日期
    LagreBinary str 二进制文件

    2. 常用列选项

    选项 说明
    primary_key 主键,True、False
    unique 如果为True,代表这列不允许出现重复的值
    index 如果为True,为这列创建索引,提高查询效率
    nullable 如果为True,允许有空值,如果为False,不允许有空值
    default 定义默认值

    3. 关系选项

    选项 说明
    backref 在关系的另一模型中添加反向引用
    primaryjoin 明确指定两个模型之间使用的联结条件
    uselist 如果为False,不使用列表,而使用标量值
    order_by 指定关系中记录的排序方式
    secondary 指定多对多中记录的排序方式
    secondaryjoin 在SQLAlchemy中无法自行决定时,指定多对多关系中的二级联结条件

    相关文章

      网友评论

          本文标题:SQLAlchemy常用字段

          本文链接:https://www.haomeiwen.com/subject/radepftx.html