**## 模型定义**
定义一个模型类很简单,例如下面是一个`User`模型:
~~~~~~
class User(db.model):
__tablename__ = 'users' # 定义列名
__mapper_args__ = {'column_prerfix': '_'} # 自动给所有的列添加一个前缀
id = Column('user_id', Integer, primary_key=True)
class __str__(self): # print(object)的时候输出的,默认仅输出类名
return f'<{self.__class__.__module__}.{self.__class__.__name__}(id={self.id})>'
~~~~~~
>[warning]请确保你已经在数据库配置文件中配置了数据库连接信息,如不清楚请参考数据库一章
模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,例如:
| 模型名 | 约定对应数据表(假设数据库的前缀定义是wait_) |
| --- | --- |
| User | wait\_user |
| UserType | wait\_user\_type |
<br/>
## **列定义**
~~~
// 数字
BigInteger // 长整型
Boolean // 布尔值
Enum // 枚举值
Float // 浮点类型
SmallInteger // 小整型
Integer(unsigned=False) // 整型
Interval // Interval类型
Numeric // 数字类型
// 字符
JSON //json类型
LargeBinary(length=None) // 二进制
PickleType // pickle类型
SchemaType // SchemaType
String(50) // 字符串varchar类型,括号里表示长度
Text(length=None) // 文本类型
Unicode // Unicode类型
UnicodeText // UnicodeText类型
// 时间
Date // 日期时间
DateTime // daatetime.datetime()对象
Time // datetime.time()对象
TIMESTAMP // 时间戳
// 关联列属性
fullname = column_property(firstname + ' ' + lastname) // 表示这一列的值由指定的列值确定
// 列属性
primary_key=True // 是否是主键
comment='' // 注释,1.2版本才有的新特性
table_name.column_name.name // .name获取真实的列名
~~~