Merge branch 'v2' into pr_5
# Conflicts: # applications/view/__init__.py
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
FLASK_APP=app.py
|
||||||
|
FLASK_ENV=development
|
||||||
|
FLASK_DEBUG=1
|
||||||
|
FLASK_RUN_HOST = 127.0.0.1
|
||||||
|
FLASK_RUN_PORT = 5000
|
||||||
@@ -1,6 +1,17 @@
|
|||||||
from applications import create_app
|
from applications import create_app
|
||||||
|
from flask_migrate import Migrate
|
||||||
|
from applications.extensions import db
|
||||||
|
from applications.common.utils.init_databases import init_db
|
||||||
|
|
||||||
app = create_app()
|
app = create_app()
|
||||||
|
|
||||||
|
migrate = Migrate(app, db)
|
||||||
|
|
||||||
|
|
||||||
|
@app.cli.command()
|
||||||
|
def init():
|
||||||
|
init_db()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run()
|
app.run()
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from flask import Flask
|
from flask import Flask
|
||||||
from flask_uploads import configure_uploads
|
from flask_uploads import configure_uploads
|
||||||
|
|
||||||
from applications.common.utils.upload import photos
|
from applications.common.utils.upload import photos
|
||||||
from applications.configs import common
|
from applications.configs import common
|
||||||
from applications.extensions import init_plugs
|
from applications.extensions import init_plugs
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
from applications.common.utils.validate import xss_escape
|
from applications.common.utils.validate import xss_escape
|
||||||
from applications.extensions import db
|
from applications.extensions import db
|
||||||
from applications.models import Dept, DeptSchema
|
from applications.models import Dept
|
||||||
|
from applications.schemas import DeptSchema
|
||||||
from applications.models import User
|
from applications.models import User
|
||||||
from applications.common.curd import model_to_dicts
|
from applications.common.curd import model_to_dicts
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
from applications.common.utils.validate import xss_escape
|
from applications.common.utils.validate import xss_escape
|
||||||
from applications.extensions import db
|
from applications.extensions import db
|
||||||
from applications.models import DictType, DictData, DictTypeSchema, DictDataSchema
|
from applications.models import DictType, DictData
|
||||||
|
from applications.schemas import DictTypeSchema, DictDataSchema
|
||||||
from applications.common.curd import model_to_dicts
|
from applications.common.curd import model_to_dicts
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ from sqlalchemy import desc
|
|||||||
|
|
||||||
from applications.common.utils.upload import photos
|
from applications.common.utils.upload import photos
|
||||||
from applications.extensions import db
|
from applications.extensions import db
|
||||||
from applications.models import Photo, PhotoSchema
|
from applications.models import Photo
|
||||||
|
from applications.schemas import PhotoSchema
|
||||||
from applications.common.curd import model_to_dicts
|
from applications.common.curd import model_to_dicts
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from flask import session, make_response, current_app
|
|||||||
from flask_login import current_user
|
from flask_login import current_user
|
||||||
|
|
||||||
from applications.common.utils.gen_captcha import gen_captcha
|
from applications.common.utils.gen_captcha import gen_captcha
|
||||||
from applications.models.admin_power import PowerSchema
|
from applications.schemas import PowerSchema
|
||||||
|
|
||||||
|
|
||||||
# 授权路由存入session
|
# 授权路由存入session
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
from applications.common.utils.validate import xss_escape
|
from applications.common.utils.validate import xss_escape
|
||||||
from applications.extensions import db
|
from applications.extensions import db
|
||||||
from applications.models.admin_power import Power, PowerSchema2
|
from applications.models.admin_power import Power
|
||||||
|
from applications.schemas import PowerSchema2
|
||||||
from applications.models import Role
|
from applications.models import Role
|
||||||
from applications.common.curd import model_to_dicts
|
from applications.common.curd import model_to_dicts
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
from sqlalchemy import and_
|
from sqlalchemy import and_
|
||||||
|
|
||||||
from applications.common.utils.validate import xss_escape
|
from applications.common.utils.validate import xss_escape
|
||||||
from applications.extensions import db
|
from applications.extensions import db
|
||||||
from applications.models import Role, RoleSchema
|
from applications.models import Role
|
||||||
from applications.models.admin_power import Power, PowerSchema2
|
from applications.schemas import RoleSchema
|
||||||
|
from applications.models.admin_power import Power
|
||||||
|
from applications.schemas import PowerSchema2
|
||||||
from applications.models import User
|
from applications.models import User
|
||||||
|
|
||||||
# 获取角色对象
|
# 获取角色对象
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ from flask import jsonify
|
|||||||
from flask_login import current_user
|
from flask_login import current_user
|
||||||
from sqlalchemy import and_, desc
|
from sqlalchemy import and_, desc
|
||||||
from applications.extensions import db
|
from applications.extensions import db
|
||||||
from applications.models import User, UserSchema
|
from applications.models import User
|
||||||
|
from applications.schemas import UserSchema
|
||||||
from applications.models import Role
|
from applications.models import Role
|
||||||
from applications.models import AdminLog
|
from applications.models import AdminLog
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,9 @@
|
|||||||
import sys
|
|
||||||
from dotenv import dotenv_values
|
from dotenv import dotenv_values
|
||||||
|
|
||||||
sys.path.append('../')
|
|
||||||
import sqlparse
|
import sqlparse
|
||||||
import pymysql
|
import pymysql
|
||||||
|
|
||||||
config = dotenv_values('.env')
|
config = dotenv_values('.env')
|
||||||
|
|
||||||
# MySql配置信息
|
# MySql配置信息
|
||||||
HOST = config.get('MYSQL_PASSWORD') or '127.0.0.1'
|
HOST = config.get('MYSQL_HOST') or '127.0.0.1'
|
||||||
PORT = config.get('MYSQL_PORT') or 3306
|
PORT = config.get('MYSQL_PORT') or 3306
|
||||||
DATABASE = config.get('MYSQL_DATABASE') or 'PearAdminFlask'
|
DATABASE = config.get('MYSQL_DATABASE') or 'PearAdminFlask'
|
||||||
USERNAME = config.get('MYSQL_USERNAME') or 'root'
|
USERNAME = config.get('MYSQL_USERNAME') or 'root'
|
||||||
@@ -60,7 +55,7 @@ def init_db():
|
|||||||
return
|
return
|
||||||
if init_database():
|
if init_database():
|
||||||
print('数据库%s创建成功' % str(DATABASE))
|
print('数据库%s创建成功' % str(DATABASE))
|
||||||
execute_fromfile('pear.sql')
|
execute_fromfile(BASE_DIR + '../../../test/pear.sql')
|
||||||
print('表创建成功')
|
print('表创建成功')
|
||||||
print('欢迎使用pear-admin-flask,请使用 flask run 命令启动程序')
|
print('欢迎使用pear-admin-flask,请使用 flask run 命令启动程序')
|
||||||
|
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
from .admin_dept import Dept, DeptSchema
|
from .admin_dept import Dept
|
||||||
from .admin_dict import DictType, DictData, DictTypeSchema, DictDataSchema
|
from .admin_dict import DictType, DictData
|
||||||
from .admin_log import AdminLog, LogSchema
|
from .admin_log import AdminLog
|
||||||
from .admin_photo import Photo, PhotoSchema
|
from .admin_photo import Photo
|
||||||
from .admin_power import Power, PowerSchema, PowerSchema2
|
from .admin_power import Power
|
||||||
from .admin_role import Role, RoleSchema
|
from .admin_role import Role
|
||||||
from .admin_role_power import role_power
|
from .admin_role_power import role_power
|
||||||
from .admin_user import User, UserSchema
|
from .admin_user import User
|
||||||
from .admin_user_role import user_role
|
from .admin_user_role import user_role
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import datetime
|
import datetime
|
||||||
from applications.extensions import db, ma
|
from applications.extensions import db
|
||||||
from marshmallow import fields, validate
|
|
||||||
|
|
||||||
|
|
||||||
class Dept(db.Model):
|
class Dept(db.Model):
|
||||||
@@ -16,16 +15,4 @@ class Dept(db.Model):
|
|||||||
remark = db.Column(db.Text, comment="备注")
|
remark = db.Column(db.Text, comment="备注")
|
||||||
address = db.Column(db.String(255), comment="详细地址")
|
address = db.Column(db.String(255), comment="详细地址")
|
||||||
create_at = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间')
|
create_at = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间')
|
||||||
update_at = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='创建时间')
|
update_at = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='创建时间')
|
||||||
|
|
||||||
|
|
||||||
class DeptSchema(ma.Schema): # 序列化类
|
|
||||||
deptId = fields.Integer(attribute="id")
|
|
||||||
parentId = fields.Integer(attribute="parent_id")
|
|
||||||
deptName = fields.Str(attribute="dept_name")
|
|
||||||
leader = fields.Str()
|
|
||||||
phone = fields.Str()
|
|
||||||
email = fields.Str(validate=validate.Email())
|
|
||||||
address = fields.Str()
|
|
||||||
status = fields.Str(validate=validate.OneOf(["0", "1"]))
|
|
||||||
sort = fields.Integer()
|
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
import datetime
|
import datetime
|
||||||
|
from applications.extensions import db
|
||||||
from applications.extensions import db, ma
|
|
||||||
from marshmallow import fields
|
|
||||||
|
|
||||||
|
|
||||||
class DictType(db.Model):
|
class DictType(db.Model):
|
||||||
@@ -25,23 +23,4 @@ class DictData(db.Model):
|
|||||||
enable = db.Column(db.Integer, comment='是否开启')
|
enable = db.Column(db.Integer, comment='是否开启')
|
||||||
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,7 +1,5 @@
|
|||||||
import datetime
|
import datetime
|
||||||
from applications.extensions import db, ma
|
from applications.extensions import db
|
||||||
from marshmallow import fields
|
|
||||||
|
|
||||||
|
|
||||||
class AdminLog(db.Model):
|
class AdminLog(db.Model):
|
||||||
__tablename__ = 'admin_admin_log'
|
__tablename__ = 'admin_admin_log'
|
||||||
@@ -13,16 +11,4 @@ class AdminLog(db.Model):
|
|||||||
ip = db.Column(db.String(255))
|
ip = db.Column(db.String(255))
|
||||||
success = db.Column(db.Integer)
|
success = db.Column(db.Integer)
|
||||||
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,7 +1,5 @@
|
|||||||
import datetime
|
import datetime
|
||||||
|
from applications.extensions import db
|
||||||
from applications.extensions import db, ma
|
|
||||||
from marshmallow import fields
|
|
||||||
|
|
||||||
|
|
||||||
class Photo(db.Model):
|
class Photo(db.Model):
|
||||||
@@ -11,14 +9,4 @@ class Photo(db.Model):
|
|||||||
href = db.Column(db.String(255))
|
href = db.Column(db.String(255))
|
||||||
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,6 +1,5 @@
|
|||||||
import datetime
|
import datetime
|
||||||
from applications.extensions import db, ma
|
from applications.extensions import db
|
||||||
from marshmallow import fields
|
|
||||||
|
|
||||||
|
|
||||||
class Power(db.Model):
|
class Power(db.Model):
|
||||||
@@ -17,33 +16,3 @@ 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,6 +1,5 @@
|
|||||||
import datetime
|
import datetime
|
||||||
from applications.extensions import db, ma
|
from applications.extensions import db
|
||||||
from marshmallow import fields
|
|
||||||
|
|
||||||
|
|
||||||
class Role(db.Model):
|
class Role(db.Model):
|
||||||
@@ -15,15 +14,3 @@ 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,9 +1,7 @@
|
|||||||
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.extensions import db, ma
|
from applications.extensions import db
|
||||||
from marshmallow import fields
|
|
||||||
from applications.models import Dept
|
|
||||||
|
|
||||||
|
|
||||||
class User(db.Model, UserMixin):
|
class User(db.Model, UserMixin):
|
||||||
@@ -25,20 +23,3 @@ 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()
|
|
||||||
dept = fields.Method("get_dept")
|
|
||||||
|
|
||||||
def get_dept(self, obj):
|
|
||||||
if obj.dept_id != None:
|
|
||||||
return Dept.query.filter_by(id=obj.dept_id).first().dept_name
|
|
||||||
else:
|
|
||||||
return None
|
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
from .admin_user import UserSchema
|
||||||
|
from .admin_role import RoleSchema
|
||||||
|
from .admin_power import PowerSchema, PowerSchema2
|
||||||
|
from .admin_dict import DictDataSchema, DictTypeSchema
|
||||||
|
from .admin_dept import DeptSchema
|
||||||
|
from .admin_log import LogSchema
|
||||||
|
from .admin_photo import PhotoSchema
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
from applications.extensions import ma
|
||||||
|
from marshmallow import fields, validate
|
||||||
|
|
||||||
|
|
||||||
|
class DeptSchema(ma.Schema):
|
||||||
|
deptId = fields.Integer(attribute="id")
|
||||||
|
parentId = fields.Integer(attribute="parent_id")
|
||||||
|
deptName = fields.Str(attribute="dept_name")
|
||||||
|
leader = fields.Str()
|
||||||
|
phone = fields.Str()
|
||||||
|
email = fields.Str(validate=validate.Email())
|
||||||
|
address = fields.Str()
|
||||||
|
status = fields.Str(validate=validate.OneOf(["0", "1"]))
|
||||||
|
sort = fields.Integer()
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
from applications.extensions import ma
|
||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
|
||||||
|
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()
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
from applications.extensions import ma
|
||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
|
||||||
|
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()
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
from applications.extensions import ma
|
||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
|
||||||
|
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()
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
from applications.extensions import ma
|
||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
|
||||||
|
# 权限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()
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
from applications.extensions import ma
|
||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
|
||||||
|
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()
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
from applications.extensions import ma
|
||||||
|
from marshmallow import fields
|
||||||
|
from applications.models import Dept
|
||||||
|
|
||||||
|
|
||||||
|
# 用户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()
|
||||||
|
dept = fields.Method("get_dept")
|
||||||
|
|
||||||
|
def get_dept(self, obj):
|
||||||
|
if obj.dept_id != None:
|
||||||
|
return Dept.query.filter_by(id=obj.dept_id).first().dept_name
|
||||||
|
else:
|
||||||
|
return None
|
||||||
@@ -3,7 +3,8 @@ from sqlalchemy import desc
|
|||||||
|
|
||||||
from applications.common.utils.http import table_api
|
from applications.common.utils.http import table_api
|
||||||
from applications.common.utils.rights import authorize
|
from applications.common.utils.rights import authorize
|
||||||
from applications.models import AdminLog, LogSchema
|
from applications.models import AdminLog
|
||||||
|
from applications.schemas import LogSchema
|
||||||
from applications.common.curd import model_to_dicts
|
from applications.common.curd import model_to_dicts
|
||||||
|
|
||||||
admin_log = Blueprint('adminLog', __name__, url_prefix='/admin/log')
|
admin_log = Blueprint('adminLog', __name__, url_prefix='/admin/log')
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
from flask import Blueprint, render_template, request, jsonify
|
from flask import Blueprint, render_template, request, jsonify
|
||||||
|
|
||||||
from applications.common.utils.http import table_api, success_api, fail_api
|
from applications.common.utils.http import table_api, success_api, fail_api
|
||||||
from applications.common.utils.rights import authorize
|
from applications.common.utils.rights import authorize
|
||||||
from applications.common.utils.validate import xss_escape
|
from applications.common.utils.validate import xss_escape
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from marshmallow import INCLUDE
|
|||||||
from applications.common.utils.http import success_api, fail_api
|
from applications.common.utils.http import success_api, fail_api
|
||||||
from applications.common.utils.rights import authorize
|
from applications.common.utils.rights import authorize
|
||||||
from applications.common.utils.validate import check_data
|
from applications.common.utils.validate import check_data
|
||||||
from applications.models import DeptSchema
|
from applications.schemas import DeptSchema
|
||||||
from applications.common.admin import dept_curd as dept_curd
|
from applications.common.admin import dept_curd as dept_curd
|
||||||
|
|
||||||
dept_bp = Blueprint('dept', __name__, url_prefix='/dept')
|
dept_bp = Blueprint('dept', __name__, url_prefix='/dept')
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
from flask import Blueprint
|
from applications.view.index.index import index_bp
|
||||||
|
|
||||||
index_bp = Blueprint('Index', __name__, url_prefix='/')
|
|
||||||
|
|
||||||
from . import index
|
from . import index
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from flask import render_template
|
from flask import render_template, Blueprint
|
||||||
|
|
||||||
from . import index_bp
|
index_bp = Blueprint('Index', __name__, url_prefix='/')
|
||||||
|
|
||||||
|
|
||||||
@index_bp.route('/')
|
@index_bp.route('/')
|
||||||
|
|||||||
Reference in New Issue
Block a user