model
This commit is contained in:
@@ -1,6 +1,10 @@
|
|||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
from entrance.extensions import db
|
from entrance.extensions import db
|
||||||
|
from sqlalchemy.orm import relationship
|
||||||
|
from sqlalchemy import Table
|
||||||
|
from sqlalchemy import ForeignKey
|
||||||
|
from sqlalchemy.orm import backref
|
||||||
|
|
||||||
|
|
||||||
class BaseModel(db.Model):
|
class BaseModel(db.Model):
|
||||||
@@ -33,6 +37,10 @@ class CurdModel(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
Column = db.Column
|
Column = db.Column
|
||||||
|
Table = Table
|
||||||
|
relationship = relationship
|
||||||
|
ForeignKey = ForeignKey
|
||||||
|
backref = backref
|
||||||
|
|
||||||
TypeDecorator = db.TypeDecorator
|
TypeDecorator = db.TypeDecorator
|
||||||
INT = db.INT
|
INT = db.INT
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
from .admin_dept import Dept
|
||||||
|
from .admin_dict import DictType, DictData
|
||||||
|
from .admin_log import AdminLog
|
||||||
|
from .admin_photo import Photo
|
||||||
|
from .admin_power import Power
|
||||||
|
from .admin_role import Role
|
||||||
|
from .admin_role_power import role_power
|
||||||
|
from .admin_user import User
|
||||||
|
from .admin_user_role import user_role
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
import datetime
|
||||||
|
|
||||||
|
from common.model import BaseModel, Column, Integer, String, Text, DateTime
|
||||||
|
|
||||||
|
|
||||||
|
class Dept(BaseModel):
|
||||||
|
__tablename__ = 'admin_dept'
|
||||||
|
id = Column(Integer, primary_key=True, comment="部门ID")
|
||||||
|
parent_id = Column(Integer, comment="父级编号")
|
||||||
|
dept_name = Column(String(50), comment="部门名称")
|
||||||
|
sort = Column(Integer, comment="排序")
|
||||||
|
leader = Column(String(50), comment="负责人")
|
||||||
|
phone = Column(String(20), comment="联系方式")
|
||||||
|
email = Column(String(50), comment="邮箱")
|
||||||
|
status = Column(Integer, comment='状态(1开启,0关闭)')
|
||||||
|
remark = Column(Text, comment="备注")
|
||||||
|
address = Column(String(255), comment="详细地址")
|
||||||
|
create_at = Column(DateTime, default=datetime.datetime.now, comment='创建时间')
|
||||||
|
update_at = Column(DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='创建时间')
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
import datetime
|
||||||
|
|
||||||
|
from common.model import BaseModel, Column, Integer, String, DateTime
|
||||||
|
|
||||||
|
|
||||||
|
class DictType(BaseModel):
|
||||||
|
__tablename__ = 'admin_dict_type'
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
type_name = Column(String(255), comment='字典类型名称')
|
||||||
|
type_code = Column(String(255), comment='字典类型标识')
|
||||||
|
description = Column(String(255), comment='字典类型描述')
|
||||||
|
enable = Column(Integer, comment='是否开启')
|
||||||
|
create_time = Column(DateTime, default=datetime.datetime.now, comment='创建时间')
|
||||||
|
update_time = Column(DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='更新时间')
|
||||||
|
|
||||||
|
|
||||||
|
class DictData(BaseModel):
|
||||||
|
__tablename__ = 'admin_dict_data'
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
data_label = Column(String(255), comment='字典类型名称')
|
||||||
|
data_value = Column(String(255), comment='字典类型标识')
|
||||||
|
type_code = Column(String(255), comment='字典类型描述')
|
||||||
|
is_default = Column(Integer, comment='是否默认')
|
||||||
|
enable = Column(Integer, comment='是否开启')
|
||||||
|
remark = Column(String(255), comment='备注')
|
||||||
|
create_time = Column(DateTime, default=datetime.datetime.now, comment='创建时间')
|
||||||
|
update_time = Column(DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='更新时间')
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import datetime
|
||||||
|
|
||||||
|
from common.model import BaseModel, Column, Integer, String, Text, DateTime
|
||||||
|
|
||||||
|
|
||||||
|
class AdminLog(BaseModel):
|
||||||
|
__tablename__ = 'admin_admin_log'
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
method = Column(String(10))
|
||||||
|
uid = Column(Integer)
|
||||||
|
url = Column(String(255))
|
||||||
|
desc = Column(Text)
|
||||||
|
ip = Column(String(255))
|
||||||
|
success = Column(Integer)
|
||||||
|
user_agent = Column(Text)
|
||||||
|
create_time = Column(DateTime, default=datetime.datetime.now)
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
import datetime
|
||||||
|
|
||||||
|
from common.model import BaseModel, Integer, Column, String, CHAR, DateTime
|
||||||
|
|
||||||
|
|
||||||
|
class Photo(BaseModel):
|
||||||
|
__tablename__ = 'admin_photo'
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
name = Column(String(255), nullable=False)
|
||||||
|
href = Column(String(255))
|
||||||
|
mime = Column(CHAR(50), nullable=False)
|
||||||
|
size = Column(CHAR(30), nullable=False)
|
||||||
|
create_time = Column(DateTime, default=datetime.datetime.now)
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
import datetime
|
||||||
|
|
||||||
|
from common.model import BaseModel, Column, Integer, String, DateTime
|
||||||
|
|
||||||
|
|
||||||
|
class Power(BaseModel):
|
||||||
|
__tablename__ = 'admin_power'
|
||||||
|
id = Column(Integer, primary_key=True, comment='权限编号')
|
||||||
|
name = Column(String(255), comment='权限名称')
|
||||||
|
type = Column(String(1), comment='权限类型')
|
||||||
|
code = Column(String(30), comment='权限标识')
|
||||||
|
url = Column(String(255), comment='权限路径')
|
||||||
|
open_type = Column(String(10), comment='打开方式')
|
||||||
|
parent_id = Column(Integer, comment='父类编号')
|
||||||
|
icon = Column(String(128), comment='图标')
|
||||||
|
sort = Column(Integer, comment='排序')
|
||||||
|
create_time = Column(DateTime, default=datetime.datetime.now, comment='创建时间')
|
||||||
|
update_time = Column(DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='更新时间')
|
||||||
|
enable = Column(Integer, comment='是否开启')
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import datetime
|
||||||
|
from common.model import BaseModel, Column, String, Integer, DateTime,relationship
|
||||||
|
|
||||||
|
|
||||||
|
class Role(BaseModel):
|
||||||
|
__tablename__ = 'admin_role'
|
||||||
|
id = Column(Integer, primary_key=True, comment='角色ID')
|
||||||
|
name = Column(String(255), comment='角色名称')
|
||||||
|
code = Column(String(255), comment='角色标识')
|
||||||
|
enable = Column(Integer, comment='是否启用')
|
||||||
|
remark = Column(String(255), comment='备注')
|
||||||
|
details = Column(String(255), comment='详情')
|
||||||
|
sort = Column(Integer, comment='排序')
|
||||||
|
create_time = Column(DateTime, default=datetime.datetime.now, comment='创建时间')
|
||||||
|
update_time = Column(DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='更新时间')
|
||||||
|
power = relationship('Power', secondary="admin_role_power", backref=backref('role'))
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
from common.model import Column, Table, Integer, ForeignKey
|
||||||
|
|
||||||
|
role_power = Table(
|
||||||
|
"admin_role_power",
|
||||||
|
Column("id", Integer, primary_key=True, autoincrement=True, comment='标识'),
|
||||||
|
Column("power_id", Integer, ForeignKey("admin_power.id"), comment='用户编号'),
|
||||||
|
Column("role_id", Integer, ForeignKey("admin_role.id"), comment='角色编号'),
|
||||||
|
)
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
import datetime
|
||||||
|
from flask_login import UserMixin
|
||||||
|
from werkzeug.security import generate_password_hash, check_password_hash
|
||||||
|
|
||||||
|
from common.model import BaseModel, Column, Integer, String, DateTime, relationship
|
||||||
|
|
||||||
|
|
||||||
|
class User(BaseModel, UserMixin):
|
||||||
|
__tablename__ = 'admin_user'
|
||||||
|
id = Column(Integer, primary_key=True, autoincrement=True, comment='用户ID')
|
||||||
|
username = Column(String(20), comment='用户名')
|
||||||
|
realname = Column(String(20), comment='真实名字')
|
||||||
|
avatar = Column(String(255), comment='头像', default="/static/admin/admin/images/avatar.jpg")
|
||||||
|
remark = Column(String(255), comment='备注')
|
||||||
|
password_hash = Column(String(128), comment='哈希密码')
|
||||||
|
enable = Column(Integer, default=0, comment='启用')
|
||||||
|
dept_id = Column(Integer, comment='部门id')
|
||||||
|
create_at = Column(DateTime, default=datetime.datetime.now, comment='创建时间')
|
||||||
|
update_at = Column(DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='创建时间')
|
||||||
|
role = relationship('Role', secondary="admin_user_role", backref=backref('user'), lazy='dynamic')
|
||||||
|
|
||||||
|
def set_password(self, password):
|
||||||
|
self.password_hash = generate_password_hash(password)
|
||||||
|
|
||||||
|
def validate_password(self, password):
|
||||||
|
return check_password_hash(self.password_hash, password)
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
from common.model import Table, Column, Integer, ForeignKey
|
||||||
|
|
||||||
|
user_role = Table(
|
||||||
|
"admin_user_role",
|
||||||
|
Column("id", Integer, primary_key=True, autoincrement=True, comment='标识'),
|
||||||
|
Column("user_id", Integer, ForeignKey("admin_user.id"), comment='用户编号'),
|
||||||
|
Column("role_id", Integer, ForeignKey("admin_role.id"), comment='角色编号'),
|
||||||
|
)
|
||||||
@@ -1,20 +1,20 @@
|
|||||||
from common.model import BaseModel, Column, String, Integer
|
from common.BaseModel import BaseBaseModel, Column, String, Integer
|
||||||
from pydantic import BaseModel as PModel
|
from pydantic import BaseBaseModel as PBaseModel
|
||||||
|
|
||||||
|
|
||||||
class User(BaseModel):
|
class User(BaseBaseModel):
|
||||||
__tablename__ = 'admin_user'
|
__tablename__ = 'admin_user'
|
||||||
id = Column(Integer, primary_key=True, autoincrement=True, comment='用户ID')
|
id = Column(Integer, primary_key=True, autoincrement=True, comment='用户ID')
|
||||||
username = Column(String(20), comment='用户名')
|
username = Column(String(20), comment='用户名')
|
||||||
|
|
||||||
|
|
||||||
class Test(BaseModel):
|
class Test(BaseBaseModel):
|
||||||
__tablename__ = 'admin_test'
|
__tablename__ = 'admin_test'
|
||||||
id = Column(Integer, primary_key=True, autoincrement=True, comment='ID')
|
id = Column(Integer, primary_key=True, autoincrement=True, comment='ID')
|
||||||
name = Column(String(20), comment='名')
|
name = Column(String(20), comment='名')
|
||||||
|
|
||||||
|
|
||||||
class Userschema(PModel):
|
class Userschema(PBaseModel):
|
||||||
id: int
|
id: int
|
||||||
username: str
|
username: str
|
||||||
|
|
||||||
|
|||||||
@@ -3,3 +3,6 @@ Flask==2.0.2
|
|||||||
flask-restx==0.5.1
|
flask-restx==0.5.1
|
||||||
pymysql==1.0.2
|
pymysql==1.0.2
|
||||||
Flask-Migrate==3.1.0
|
Flask-Migrate==3.1.0
|
||||||
|
flask-marshmallow==0.14.0
|
||||||
|
marshmallow-sqlalchemy==0.27.0
|
||||||
|
Flask-Login==0.5.0
|
||||||
Reference in New Issue
Block a user