base.tpl 1.61 KB
Newer Older
1 2
#!/usr/bin/env python
# -*- coding: utf_8 -*-
wanli's avatar
wanli committed
3 4 5

import uuid
from datetime import datetime
6
from application.app import db
wanli's avatar
wanli committed
7

wanli's avatar
wanli committed
8 9 10
def generate_uuid():
    return uuid.uuid1().hex

wanli's avatar
wanli committed
11
class BaseModel(db.Model):
12 13 14 15
    # Flask-SQLAlchemy创建table时,如何声明基类(这个类不会创建表,可以被继承)
    # 方法就是把__abstract__这个属性设置为True,这个类为基类,不会被创建为表!
    __abstract__ = True
    create_at = db.Column(db.DateTime, default=datetime.now)
wanli's avatar
wanli committed
16
    create_by = db.Column(db.String(64))
17
    update_at = db.Column(db.DateTime, default=datetime.now)
wanli's avatar
wanli committed
18 19
    update_by = db.Column(db.String(64))
    remarks = db.Column(db.String(255), default="")
20
    is_delete = db.Column(db.BOOLEAN, default=0)
wanli's avatar
wanli committed
21 22

class PrimaryModel(BaseModel):
23
    __abstract__ = True
wanli's avatar
wanli committed
24 25
    id = db.Column(db.Integer, primary_key=True{% if application.get("database") == "mysql" or application.get("database") == "sqlite" %}, autoincrement=True{% else %}, autoincrement=False{% endif %})
    uuid = db.Column(db.String(64), primary_key=False, default=generate_uuid)
wanli's avatar
wanli committed
26 27

class AutoBaseModel(BaseModel):
28
    __abstract__ = True
wanli's avatar
wanli committed
29
    id = db.Column(db.Integer, primary_key=True{% if application.get("database") == "mysql" or application.get("database") == "sqlite" %}, autoincrement=True{% else %}, autoincrement=False{% endif %})
wanli's avatar
wanli committed
30 31 32
    sort = db.Column(db.Integer, default=0)

class UuidBaseModel(BaseModel):
33
    __abstract__ = True
wanli's avatar
wanli committed
34
    id = db.Column(db.String(64), primary_key=True, default=generate_uuid)
wanli's avatar
wanli committed
35 36 37
    sort = db.Column(db.Integer, default=0)

class SortBaseModel(BaseModel):
38
    __abstract__ = True
39
    sort = db.Column(db.Integer, default=0)