flask sqlalchemy 的db.model参数解析

niaiai 2017-12-29 PM 643℃ 0条

Flask-SQLAlchemy的模型创建参数解析

一个简单的例子

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, username, email):
        self.username = username
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.username

db.Column 说明

  • 源码 site-packages/sqlalchemy/sql/schema.py
  • 方法 Column(SchemaItem, ColumnClause)
  • ColumnClause说明
参数类型默认修改默认备注
tablenamestr类名派生__tablename__ = 'users'表名
primary_keyboolFalseprimary_key=True主键
nullableboolprimary_key 取反nullable=True是否为空
default Nonedefault=xxx默认值
indexboolNoneindex=True索引
uniqueboolNoneunique=True唯一

表名是自动地为您设置好的,除非您想要覆盖它。 它是从转成小写的类名派生出来的, 即 “CamelCase” 转换为 “camel_case”

SchemaItem db类型说明

  • 源码 site-packages/sqlalchemy/sql/sqltypes.py
  • 多种SQL类型

    • Indexable
    • String
    • Text
    • Unicode
    • UnicodeText
    • Integer
    • SmallInteger
    • BigInteger
    • Numeric
    • Float
    • DateTime
    • Date
    • Time
    • LargeBinary
    • Binary
    • Enum
    • Boolean
标签: Flask-SQLAlchemy, model

非特殊说明,本博所有文章均为博主原创。

评论啦~