**## 模型定義**
定義一個模型類很簡單,例如下面是一個`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獲取真實的列名
~~~