序列化类移到models里,简化代码
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
from flask_sqlalchemy import SQLAlchemy
|
from flask_sqlalchemy import SQLAlchemy
|
||||||
|
from flask_marshmallow import Marshmallow
|
||||||
|
|
||||||
db = SQLAlchemy()
|
db = SQLAlchemy()
|
||||||
|
ma = Marshmallow()
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
from applications.models import db
|
from applications.models import db, ma
|
||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
|
||||||
class DictType(db.Model):
|
class DictType(db.Model):
|
||||||
@@ -25,3 +26,22 @@ class DictData(db.Model):
|
|||||||
remark = db.Column(db.String(255), comment='备注')
|
remark = db.Column(db.String(255), comment='备注')
|
||||||
create_time = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间')
|
create_time = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间')
|
||||||
update_time = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='更新时间')
|
update_time = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='更新时间')
|
||||||
|
|
||||||
|
|
||||||
|
class DictTypeSchema(ma.Schema): # 序列化类
|
||||||
|
id = fields.Str(attribute="id")
|
||||||
|
typeName = fields.Str(attribute="type_name")
|
||||||
|
typeCode = fields.Str(attribute="type_code")
|
||||||
|
description = fields.Str(attribute="description")
|
||||||
|
createTime = fields.Str(attribute="create_time")
|
||||||
|
updateName = fields.Str(attribute="update_time")
|
||||||
|
remark = fields.Str()
|
||||||
|
enable = fields.Str()
|
||||||
|
|
||||||
|
|
||||||
|
class DictDataSchema(ma.Schema): # 序列化类
|
||||||
|
dataId = fields.Str(attribute="id")
|
||||||
|
dataLabel = fields.Str(attribute="data_label")
|
||||||
|
dataValue = fields.Str(attribute="data_value")
|
||||||
|
remark = fields.Str()
|
||||||
|
enable = fields.Str()
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import datetime
|
import datetime
|
||||||
from applications.models import db
|
from applications.models import db, ma
|
||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
|
||||||
class AdminLog(db.Model):
|
class AdminLog(db.Model):
|
||||||
@@ -14,3 +15,14 @@ class AdminLog(db.Model):
|
|||||||
user_agent = db.Column(db.Text)
|
user_agent = db.Column(db.Text)
|
||||||
create_time = db.Column(db.DateTime, default=datetime.datetime.now)
|
create_time = db.Column(db.DateTime, default=datetime.datetime.now)
|
||||||
|
|
||||||
|
|
||||||
|
class LogSchema(ma.Schema): # 序列化类
|
||||||
|
id = fields.Integer()
|
||||||
|
method = fields.Str()
|
||||||
|
uid = fields.Str()
|
||||||
|
url = fields.Str()
|
||||||
|
desc = fields.Str()
|
||||||
|
ip = fields.Str()
|
||||||
|
user_agent = fields.Str()
|
||||||
|
success = fields.Bool()
|
||||||
|
create_time = fields.DateTime()
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
from applications.models import db
|
from applications.models import db, ma
|
||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
|
||||||
class Photo(db.Model):
|
class Photo(db.Model):
|
||||||
@@ -11,3 +12,13 @@ class Photo(db.Model):
|
|||||||
mime = db.Column(db.CHAR(50), nullable=False)
|
mime = db.Column(db.CHAR(50), nullable=False)
|
||||||
size = db.Column(db.CHAR(30), nullable=False)
|
size = db.Column(db.CHAR(30), nullable=False)
|
||||||
create_time = db.Column(db.DateTime, default=datetime.datetime.now)
|
create_time = db.Column(db.DateTime, default=datetime.datetime.now)
|
||||||
|
|
||||||
|
|
||||||
|
class PhotoSchema(ma.Schema):
|
||||||
|
id = fields.Integer()
|
||||||
|
name = fields.Str()
|
||||||
|
href = fields.Str()
|
||||||
|
mime = fields.Str()
|
||||||
|
size = fields.Str()
|
||||||
|
ext = fields.Str()
|
||||||
|
create_time = fields.DateTime()
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import datetime
|
import datetime
|
||||||
from applications.models import db
|
from applications.models import db, ma
|
||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
|
||||||
class Power(db.Model):
|
class Power(db.Model):
|
||||||
@@ -16,3 +17,34 @@ class Power(db.Model):
|
|||||||
create_time = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间')
|
create_time = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间')
|
||||||
update_time = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='更新时间')
|
update_time = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='更新时间')
|
||||||
enable = db.Column(db.Integer, comment='是否开启')
|
enable = db.Column(db.Integer, comment='是否开启')
|
||||||
|
|
||||||
|
|
||||||
|
# 权限models序列化类
|
||||||
|
class PowerSchema(ma.Schema):
|
||||||
|
id = fields.Integer()
|
||||||
|
title = fields.Str(attribute="name")
|
||||||
|
type = fields.Str()
|
||||||
|
code = fields.Str()
|
||||||
|
href = fields.Str(attribute="url")
|
||||||
|
openType = fields.Str(attribute="open_type")
|
||||||
|
parent_id = fields.Integer()
|
||||||
|
icon = fields.Str()
|
||||||
|
sort = fields.Integer()
|
||||||
|
create_time = fields.DateTime()
|
||||||
|
update_time = fields.DateTime()
|
||||||
|
enable = fields.Integer()
|
||||||
|
|
||||||
|
|
||||||
|
class PowerSchema2(ma.Schema): # 序列化类
|
||||||
|
powerId = fields.Str(attribute="id")
|
||||||
|
powerName = fields.Str(attribute="name")
|
||||||
|
powerType = fields.Str(attribute="type")
|
||||||
|
powerUrl = fields.Str(attribute="url")
|
||||||
|
openType = fields.Str(attribute="open_type")
|
||||||
|
parentId = fields.Str(attribute="parent_id")
|
||||||
|
icon = fields.Str()
|
||||||
|
sort = fields.Integer()
|
||||||
|
create_time = fields.DateTime()
|
||||||
|
update_time = fields.DateTime()
|
||||||
|
enable = fields.Integer()
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
import datetime
|
import datetime
|
||||||
from applications.models import db
|
from applications.models import db, ma
|
||||||
|
from marshmallow import fields
|
||||||
|
from applications.models import admin_role_power
|
||||||
|
|
||||||
|
|
||||||
class Role(db.Model):
|
class Role(db.Model):
|
||||||
@@ -14,3 +16,15 @@ class Role(db.Model):
|
|||||||
create_time = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间')
|
create_time = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间')
|
||||||
update_time = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='更新时间')
|
update_time = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='更新时间')
|
||||||
power = db.relationship('Power', secondary="admin_role_power", backref=db.backref('role'))
|
power = db.relationship('Power', secondary="admin_role_power", backref=db.backref('role'))
|
||||||
|
|
||||||
|
|
||||||
|
class RoleSchema(ma.Schema):
|
||||||
|
id = fields.Integer()
|
||||||
|
roleName = fields.Str(attribute="name")
|
||||||
|
roleCode = fields.Str(attribute="code")
|
||||||
|
enable = fields.Str()
|
||||||
|
remark = fields.Str()
|
||||||
|
details = fields.Str()
|
||||||
|
sort = fields.Integer()
|
||||||
|
create_at = fields.DateTime()
|
||||||
|
update_at = fields.DateTime()
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import datetime
|
import datetime
|
||||||
from flask_login import UserMixin
|
from flask_login import UserMixin
|
||||||
from werkzeug.security import generate_password_hash, check_password_hash
|
from werkzeug.security import generate_password_hash, check_password_hash
|
||||||
from applications.models import db
|
from applications.models import db, ma
|
||||||
|
from marshmallow import fields
|
||||||
|
from applications.models import admin_user_role
|
||||||
|
|
||||||
|
|
||||||
class User(db.Model, UserMixin):
|
class User(db.Model, UserMixin):
|
||||||
@@ -22,3 +24,13 @@ class User(db.Model, UserMixin):
|
|||||||
|
|
||||||
def validate_password(self, password):
|
def validate_password(self, password):
|
||||||
return check_password_hash(self.password_hash, password)
|
return check_password_hash(self.password_hash, password)
|
||||||
|
|
||||||
|
|
||||||
|
# 用户models的序列化类
|
||||||
|
class UserSchema(ma.Schema):
|
||||||
|
id = fields.Integer()
|
||||||
|
username = fields.Str()
|
||||||
|
realname = fields.Str()
|
||||||
|
enable = fields.Integer()
|
||||||
|
create_at = fields.DateTime()
|
||||||
|
update_at = fields.DateTime()
|
||||||
|
|||||||
@@ -1,13 +1,9 @@
|
|||||||
# 字典管理
|
# 字典管理
|
||||||
# 查询字典类型
|
# 查询字典类型
|
||||||
|
|
||||||
from flask_marshmallow import Marshmallow
|
|
||||||
from marshmallow import fields
|
|
||||||
|
|
||||||
from applications.models import db
|
from applications.models import db
|
||||||
from applications.models.admin_dict import DictType, DictData
|
from applications.models.admin_dict import DictType, DictData, DictTypeSchema, DictDataSchema
|
||||||
|
|
||||||
ma = Marshmallow()
|
|
||||||
|
|
||||||
|
|
||||||
# 通过type_code获取字典dict
|
# 通过type_code获取字典dict
|
||||||
@@ -25,25 +21,6 @@ def get_dict(typecode: str):
|
|||||||
return Dict_list
|
return Dict_list
|
||||||
|
|
||||||
|
|
||||||
class DictTypeSchema(ma.Schema): # 序列化类
|
|
||||||
id = fields.Str(attribute="id")
|
|
||||||
typeName = fields.Str(attribute="type_name")
|
|
||||||
typeCode = fields.Str(attribute="type_code")
|
|
||||||
description = fields.Str(attribute="description")
|
|
||||||
createTime = fields.Str(attribute="create_time")
|
|
||||||
updateName = fields.Str(attribute="update_time")
|
|
||||||
remark = fields.Str()
|
|
||||||
enable = fields.Str()
|
|
||||||
|
|
||||||
|
|
||||||
class DictDataSchema(ma.Schema): # 序列化类
|
|
||||||
dataId = fields.Str(attribute="id")
|
|
||||||
dataLabel = fields.Str(attribute="data_label")
|
|
||||||
dataValue = fields.Str(attribute="data_value")
|
|
||||||
remark = fields.Str()
|
|
||||||
enable = fields.Str()
|
|
||||||
|
|
||||||
|
|
||||||
def get_dict_type(page, limit, type_name):
|
def get_dict_type(page, limit, type_name):
|
||||||
dict_all = DictType.query
|
dict_all = DictType.query
|
||||||
if type_name:
|
if type_name:
|
||||||
|
|||||||
@@ -1,24 +1,10 @@
|
|||||||
import os
|
import os
|
||||||
from flask import current_app
|
from flask import current_app
|
||||||
from flask_marshmallow import Marshmallow
|
|
||||||
from marshmallow import fields
|
|
||||||
from sqlalchemy import desc
|
from sqlalchemy import desc
|
||||||
from applications.models import db
|
from applications.models import db
|
||||||
from applications.models.admin_photo import Photo
|
from applications.models.admin_photo import Photo, PhotoSchema
|
||||||
from applications.service.upload import photos
|
from applications.service.upload import photos
|
||||||
|
|
||||||
ma = Marshmallow()
|
|
||||||
|
|
||||||
|
|
||||||
class PhotoSchema(ma.Schema):
|
|
||||||
id = fields.Integer()
|
|
||||||
name = fields.Str()
|
|
||||||
href = fields.Str()
|
|
||||||
mime = fields.Str()
|
|
||||||
size = fields.Str()
|
|
||||||
ext = fields.Str()
|
|
||||||
create_time = fields.DateTime()
|
|
||||||
|
|
||||||
|
|
||||||
def get_photo(page, limit):
|
def get_photo(page, limit):
|
||||||
photo = Photo.query.order_by(desc(Photo.create_time)).paginate(page=page, per_page=limit, error_out=False)
|
photo = Photo.query.order_by(desc(Photo.create_time)).paginate(page=page, per_page=limit, error_out=False)
|
||||||
|
|||||||
@@ -1,28 +1,9 @@
|
|||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from flask import session, make_response
|
from flask import session, make_response
|
||||||
from flask_login import current_user
|
from flask_login import current_user
|
||||||
from flask_marshmallow import Marshmallow
|
from applications.models.admin_power import PowerSchema
|
||||||
from marshmallow import fields
|
|
||||||
from applications.service.CaptchaTool import gen_captcha
|
from applications.service.CaptchaTool import gen_captcha
|
||||||
|
|
||||||
ma = Marshmallow()
|
|
||||||
|
|
||||||
|
|
||||||
# 权限models序列化类
|
|
||||||
class PowerSchema(ma.Schema):
|
|
||||||
id = fields.Integer()
|
|
||||||
title = fields.Str(attribute="name")
|
|
||||||
type = fields.Str()
|
|
||||||
code = fields.Str()
|
|
||||||
href = fields.Str(attribute="url")
|
|
||||||
openType = fields.Str(attribute="open_type")
|
|
||||||
parent_id = fields.Integer()
|
|
||||||
icon = fields.Str()
|
|
||||||
sort = fields.Integer()
|
|
||||||
create_time = fields.DateTime()
|
|
||||||
update_time = fields.DateTime()
|
|
||||||
enable = fields.Integer()
|
|
||||||
|
|
||||||
|
|
||||||
# 授权路由存入session
|
# 授权路由存入session
|
||||||
def add_auth_session():
|
def add_auth_session():
|
||||||
|
|||||||
@@ -1,30 +1,11 @@
|
|||||||
from flask_marshmallow import Marshmallow
|
|
||||||
from marshmallow import fields
|
|
||||||
|
|
||||||
from applications.models import db
|
from applications.models import db
|
||||||
from applications.models.admin_power import Power
|
from applications.models.admin_power import Power, PowerSchema2
|
||||||
from applications.models.admin_role import Role
|
from applications.models.admin_role import Role
|
||||||
|
|
||||||
ma = Marshmallow()
|
|
||||||
|
|
||||||
|
|
||||||
class PowerSchema(ma.Schema): # 序列化类
|
|
||||||
powerId = fields.Str(attribute="id")
|
|
||||||
powerName = fields.Str(attribute="name")
|
|
||||||
powerType = fields.Str(attribute="type")
|
|
||||||
powerUrl = fields.Str(attribute="url")
|
|
||||||
openType = fields.Str(attribute="pen_type")
|
|
||||||
parentId = fields.Str(attribute="parent_id")
|
|
||||||
icon = fields.Str()
|
|
||||||
sort = fields.Integer()
|
|
||||||
create_time = fields.DateTime()
|
|
||||||
update_time = fields.DateTime()
|
|
||||||
enable = fields.Integer()
|
|
||||||
|
|
||||||
|
|
||||||
def get_power_dict():
|
def get_power_dict():
|
||||||
power = Power.query.all()
|
power = Power.query.all()
|
||||||
power_schema = PowerSchema(many=True)
|
power_schema = PowerSchema2(many=True)
|
||||||
power_dict = power_schema.dump(power)
|
power_dict = power_schema.dump(power)
|
||||||
return power_dict
|
return power_dict
|
||||||
|
|
||||||
@@ -32,7 +13,7 @@ def get_power_dict():
|
|||||||
# 选择父节点
|
# 选择父节点
|
||||||
def select_parent():
|
def select_parent():
|
||||||
power = Power.query.all()
|
power = Power.query.all()
|
||||||
power_schema = PowerSchema(many=True)
|
power_schema = PowerSchema2(many=True)
|
||||||
power_dict = power_schema.dump(power)
|
power_dict = power_schema.dump(power)
|
||||||
power_dict.append({"powerId": 0, "powerName": "顶级权限", "parentId": -1})
|
power_dict.append({"powerId": 0, "powerName": "顶级权限", "parentId": -1})
|
||||||
return power_dict
|
return power_dict
|
||||||
|
|||||||
@@ -1,39 +1,9 @@
|
|||||||
from flask_marshmallow import Marshmallow
|
|
||||||
from marshmallow import fields
|
|
||||||
from sqlalchemy import and_
|
from sqlalchemy import and_
|
||||||
from applications.models import db
|
from applications.models import db
|
||||||
from applications.models.admin_role import Role
|
from applications.models.admin_role import Role, RoleSchema
|
||||||
from applications.models.admin_power import Power
|
from applications.models.admin_power import Power, PowerSchema2
|
||||||
from applications.models.admin_user import User
|
from applications.models.admin_user import User
|
||||||
|
|
||||||
ma = Marshmallow()
|
|
||||||
|
|
||||||
|
|
||||||
class RoleSchema(ma.Schema):
|
|
||||||
id = fields.Integer()
|
|
||||||
roleName = fields.Str(attribute="name")
|
|
||||||
roleCode = fields.Str(attribute="code")
|
|
||||||
enable = fields.Str()
|
|
||||||
remark = fields.Str()
|
|
||||||
details = fields.Str()
|
|
||||||
sort = fields.Integer()
|
|
||||||
create_at = fields.DateTime()
|
|
||||||
update_at = fields.DateTime()
|
|
||||||
|
|
||||||
|
|
||||||
class PowerSchema(ma.Schema): # 序列化类
|
|
||||||
powerId = fields.Str(attribute="id")
|
|
||||||
powerName = fields.Str(attribute="name")
|
|
||||||
powerType = fields.Str(attribute="type")
|
|
||||||
powerUrl = fields.Str(attribute="url")
|
|
||||||
openType = fields.Str(attribute="pen_type")
|
|
||||||
parentId = fields.Str(attribute="parent_id")
|
|
||||||
icon = fields.Str()
|
|
||||||
sort = fields.Integer()
|
|
||||||
create_time = fields.DateTime()
|
|
||||||
update_time = fields.DateTime()
|
|
||||||
enable = fields.Integer()
|
|
||||||
|
|
||||||
|
|
||||||
# 获取角色对象
|
# 获取角色对象
|
||||||
def get_role_data(page, limit, filters):
|
def get_role_data(page, limit, filters):
|
||||||
@@ -100,7 +70,7 @@ def get_role_power(id):
|
|||||||
for cp in check_powers:
|
for cp in check_powers:
|
||||||
check_powers_list.append(cp.id)
|
check_powers_list.append(cp.id)
|
||||||
powers = Power.query.all()
|
powers = Power.query.all()
|
||||||
power_schema = PowerSchema(many=True) # 用已继承ma.ModelSchema类的自定制类生成序列化类
|
power_schema = PowerSchema2(many=True) # 用已继承ma.ModelSchema类的自定制类生成序列化类
|
||||||
output = power_schema.dump(powers) # 生成可序列化对象
|
output = power_schema.dump(powers) # 生成可序列化对象
|
||||||
for i in output:
|
for i in output:
|
||||||
if int(i.get("powerId")) in check_powers_list:
|
if int(i.get("powerId")) in check_powers_list:
|
||||||
|
|||||||
@@ -1,27 +1,10 @@
|
|||||||
from flask import jsonify
|
from flask import jsonify
|
||||||
from flask_login import current_user
|
from flask_login import current_user
|
||||||
from flask_marshmallow import Marshmallow
|
|
||||||
from marshmallow import fields
|
|
||||||
from sqlalchemy import and_, desc
|
from sqlalchemy import and_, desc
|
||||||
from sqlalchemy.sql import exists
|
|
||||||
|
|
||||||
from applications.models import db
|
from applications.models import db
|
||||||
from applications.models.admin_user import User
|
from applications.models.admin_user import User, UserSchema
|
||||||
from applications.models.admin_role import Role
|
from applications.models.admin_role import Role
|
||||||
from applications.models.admin_log import AdminLog
|
from applications.models.admin_log import AdminLog
|
||||||
from sqlalchemy.orm.dynamic import AppenderQuery
|
|
||||||
|
|
||||||
ma = Marshmallow()
|
|
||||||
|
|
||||||
|
|
||||||
# 用户models的序列化类
|
|
||||||
class UserSchema(ma.Schema):
|
|
||||||
id = fields.Integer()
|
|
||||||
username = fields.Str()
|
|
||||||
realname = fields.Str()
|
|
||||||
enable = fields.Integer()
|
|
||||||
create_at = fields.DateTime()
|
|
||||||
update_at = fields.DateTime()
|
|
||||||
|
|
||||||
|
|
||||||
# 获取用户的sqlalchemy对象分页器
|
# 获取用户的sqlalchemy对象分页器
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
from flask import Blueprint, request, render_template, jsonify
|
from flask import Blueprint, request, render_template, jsonify
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
from flask_marshmallow import Marshmallow
|
|
||||||
from marshmallow import fields
|
|
||||||
from sqlalchemy import desc
|
from sqlalchemy import desc
|
||||||
from applications.models.admin_log import AdminLog
|
from applications.models.admin_log import AdminLog, LogSchema
|
||||||
|
|
||||||
ma = Marshmallow()
|
|
||||||
admin_log = Blueprint('adminLog', __name__, url_prefix='/admin/log')
|
admin_log = Blueprint('adminLog', __name__, url_prefix='/admin/log')
|
||||||
|
|
||||||
|
|
||||||
@@ -20,18 +17,6 @@ def index():
|
|||||||
return render_template('admin/admin_log/main.html')
|
return render_template('admin/admin_log/main.html')
|
||||||
|
|
||||||
|
|
||||||
class LogSchema(ma.Schema): # 序列化类
|
|
||||||
id = fields.Integer()
|
|
||||||
method = fields.Str()
|
|
||||||
uid = fields.Str()
|
|
||||||
url = fields.Str()
|
|
||||||
desc = fields.Str()
|
|
||||||
ip = fields.Str()
|
|
||||||
user_agent = fields.Str()
|
|
||||||
success = fields.Bool()
|
|
||||||
create_time = fields.DateTime()
|
|
||||||
|
|
||||||
|
|
||||||
# ==========================================================
|
# ==========================================================
|
||||||
# 登录日志
|
# 登录日志
|
||||||
# ==========================================================
|
# ==========================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user