使用flask-restful实现数据校验与序列化3

This commit is contained in:
zhengxinonly
2021-06-27 19:27:08 +08:00
parent e9bd8a17a0
commit e3dd5458ad
23 changed files with 517 additions and 1202 deletions
+41 -20
View File
@@ -1,9 +1,9 @@
from flask import Blueprint, request, render_template
from flask_restful import Api
from flask_restful import Api, reqparse
from applications.common.utils.http import table_api
from applications.common.utils.rights import authorize
from applications.models import Role
from applications.models import Role, User, Dept
users_bp = Blueprint('users', __name__, url_prefix='/users')
user_api = Api(users_bp)
@@ -13,27 +13,48 @@ user_api = Api(users_bp)
@users_bp.get('/data')
@authorize("admin:user:main", log=True)
def data():
page = request.args.get('page', type=int)
limit = request.args.get('limit', type=int)
real_name = request.args.get('realName', type=str)
username = request.args.get('username', type=str)
dept_id = request.args.get('deptId', type=int)
filters = {}
if real_name:
filters["realname"] = ('%' + real_name + '%')
if username:
filters["username"] = ('%' + username + '%')
user_data, count = user_curd.get_user_data_dict(page=page, limit=limit, filters=filters, deptId=dept_id)
return table_api(data=user_data, count=count)
parser = reqparse.RequestParser()
parser.add_argument('page', type=int, default=1)
parser.add_argument('limit', type=int, default=10)
parser.add_argument('realName', type=str, dest='real_name')
parser.add_argument('username', type=str)
parser.add_argument('deptId', type=int, dest='dept_id', default=0)
res = parser.parse_args()
filters = []
if res.real_name:
filters.append(User.realname.like('%' + res.real_name + '%'))
if res.username:
filters.append(User.username.like('%' + res.username + '%'))
if res.dept_id:
filters.append(User.dept_id == res.dept_id)
paginate = User.query.filter(*filters).paginate(page=res.page,
per_page=res.limit,
error_out=False)
dept_name = lambda dept_id: Dept.query.filter_by(id=dept_id).first().dept_name
user_data = [{
'id': item.id,
'username': item.username,
'realname': item.realname,
'enable': item.enable,
'create_at': item.create_at,
'update_at': item.update_at,
'dept': dept_name(item.dept_id),
} for item in paginate.items]
return table_api(data=user_data, count=paginate.total)
# 用户增加
@users_bp.get('/add')
@authorize("admin:user:add", log=True)
def add():
roles = Role.query.all()
return render_template('admin/user/add.html', roles=roles)
@users_bp.get('/')
@authorize("admin:user:main", log=True)
def get():
return render_template('admin/user/main.html')
from . import profile, user_curd
from . import profile, _utils
from . import user_view