model
This commit is contained in:
+9
-1
@@ -1,6 +1,10 @@
|
||||
import datetime
|
||||
|
||||
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):
|
||||
@@ -33,6 +37,10 @@ class CurdModel(BaseModel):
|
||||
|
||||
|
||||
Column = db.Column
|
||||
Table = Table
|
||||
relationship = relationship
|
||||
ForeignKey = ForeignKey
|
||||
backref = backref
|
||||
|
||||
TypeDecorator = db.TypeDecorator
|
||||
INT = db.INT
|
||||
@@ -76,4 +84,4 @@ PickleType = db.PickleType
|
||||
Interval = db.Interval
|
||||
Enum = db.Enum
|
||||
ARRAY = db.ARRAY
|
||||
JSON = db.JSON
|
||||
JSON = db.JSON
|
||||
|
||||
@@ -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 pydantic import BaseModel as PModel
|
||||
from common.BaseModel import BaseBaseModel, Column, String, Integer
|
||||
from pydantic import BaseBaseModel as PBaseModel
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
class User(BaseBaseModel):
|
||||
__tablename__ = 'admin_user'
|
||||
id = Column(Integer, primary_key=True, autoincrement=True, comment='用户ID')
|
||||
username = Column(String(20), comment='用户名')
|
||||
|
||||
|
||||
class Test(BaseModel):
|
||||
class Test(BaseBaseModel):
|
||||
__tablename__ = 'admin_test'
|
||||
id = Column(Integer, primary_key=True, autoincrement=True, comment='ID')
|
||||
name = Column(String(20), comment='名')
|
||||
|
||||
|
||||
class Userschema(PModel):
|
||||
class Userschema(PBaseModel):
|
||||
id: int
|
||||
username: str
|
||||
|
||||
|
||||
+4
-1
@@ -2,4 +2,7 @@
|
||||
Flask==2.0.2
|
||||
flask-restx==0.5.1
|
||||
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