宏观层面权限组合:read/update/create/delete
创建数据库
c.execute('''
CREATE TABLE "role" (
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" varchar(64) NOT NULL DEFAULT '',
"default" Boolean NOT NULL DEFAULT FALSE,
"permission" integer
);
''')
c.execute('''
CREATE TABLE "user" (
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" varchar(64) NOT NULL DEFAULT '',
"password" varchar(64) NOT NULL DEFAULT '',
"status" tinteger unsigned NOT NULL DEFAULT '1',
"last_login_ip" varchar(64) DEFAULT NULL,
"last_login_time" datetime DEFAULT NULL,
"create_time" datetime DEFAULT (datetime('now', 'localtime')),
"update_time" datetime DEFAULT (datetime('now', 'localtime')),
"role_id" integer,
FOREIGN KEY("role_id") REFERENCES role(id)
);
''')
创建对应的模型类
class User(db.Model):
__tablename__ = "user"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, default="")
password = db.Column(db.String, default="")
status = db.Column(db.Integer, default=1)
last_login_ip = db.Column(db.String)
last_login_time = db.Column(db.DateTime)
create_time = db.Column(db.DateTime, default=datetime.now)
update_time = db.Column(db.DateTime, default=datetime.now)
role_id = db.Column(db.Integer, db.ForeignKey('role.id'))
class Permission:
READ = 0x01
CREATE = 0x02
UPDATE = 0x04
DELETE = 0x08
DEFAULT = READ
class Role(db.Model):
__tablename__ = 'role'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64),default="")
default = db.Column