上古卷轴5python_基于Python-Flask的权限管理5:字典管理
#!/usr/bin/python3#-*- coding: utf-8 -*-
"""@Author : Huguodong
@Version :
------------------------------------
@File : dict_route.py
@Description : 字典數據
@CreateTime : 2020/3/14 16:10
------------------------------------
@ModifyTime :"""
from permission import *dictData= Blueprint('dictData', __name__)
@dictData.route('/index', methods=["POST"])defindex():
res_dir=request.get_json()if res_dir isNone:returnNO_PARAMETER()
dict_type= res_dir.get("dict_type")
dict_id= res_dir.get("dict_id")
page= res_dir.get("page")
page_size= res_dir.get("page_size")
dict_label= res_dir.get("dict_label")
dict_number= res_dir.get("dict_number")
status= res_dir.get("status")
order_column_name= res_dir.get("order_column_name")
order_type= res_dir.get("order_type")if not page or page <=0:
page= 1
if not page_size or page_size <=0:
page_size= 10
if dict_type and dict_id isNone:
dict_data= Dict_Data.query.filter(Dict_Data.dict_type == dict_type).order_by('dict_sort').paginate(page,
page_size,
error_out=False)
data= construct_page_data(dict_data) #格式化返回數據
return jsonify(code=Code.SUCCESS.value, msg="ok", data=data)elif dict_id is notNone:
dict_data=Dict_Data.queryif dict_id !=0:
dict_data= dict_data.filter(Dict_Data.dict_id ==dict_id)ifdict_label:
dict_data= dict_data.filter(Dict_Data.dict_label.like("%" + dict_label + "%"))ifdict_number:
dict_data= dict_data.filter(Dict_Data.dict_number ==int(dict_number))ifdict_type:
dict_data= dict_data.filter(Dict_Data.dict_type.like("%" + dict_type + "%"))if status is notNone:
dict_data= dict_data.filter(Dict_Data.status.in_((1, 2))) if status == 0 elsedict_data.filter(
Dict_Data.status==status)if order_column_name and order_type and order_type.lower() in ['asc', 'desc']:
dict_data= dict_data.order_by(text(f"{order_column_name} {order_type}"))
result= dict_data.paginate(page, page_size, error_out=False)
data= construct_page_data(result) #格式化返回數據
return SUCCESS(data=data)else:returnPARAMETER_ERR()
@dictData.route('/create', methods=["PUT"])defcreate():
res_dir=request.get_json()if res_dir isNone:returnNO_PARAMETER()
dict_id= res_dir.get("dict_id")
dict_label= res_dir.get("dict_label")
dict_number= res_dir.get("dict_number")
css_class= res_dir.get("css_class")
list_class= res_dir.get("list_class")
is_default= res_dir.get("is_default")
dict_sort= res_dir.get("dict_sort")
dict_value= res_dir.get("dict_value")
status= res_dir.get("status")
remark= res_dir.get("remark")if dict_id and dict_label if dict_label is not None elsedict_value:try:
token= request.headers["Authorization"]
user=verify_token(token)
dict_type=Dict_Type.query.get(dict_id).dict_type
model=Dict_Data()
model.dict_id=dict_id
model.dict_type=dict_type
model.dict_label=dict_label
model.dict_number=dict_number
model.css_class=css_class
model.list_class=list_class
model.is_default=is_default
model.dict_sort=dict_sort
model.dict_value=dict_value
model.remark=remark
model.status=status
model.create_by= user['name']
model.save()returnSUCCESS()exceptException as e:
app.logger.error(f"創建字典數據失敗:{e}")returnCREATE_ERROR()else:returnNO_PARAMETER()
@dictData.route('/update', methods=["POST", "PUT"])defupdate():'''更新字典數據
POST方法根據id返回數據
PUT方法更新
:return:'''res_dir=request.get_json()if res_dir isNone:returnNO_PARAMETER()if request.method == "POST":
id= res_dir.get("id")ifid:
model=Dict_Data.query.get(id)ifmodel:
dict_data=model_to_dict(model)returnSUCCESS(dict_data)else:returnID_NOT_FOUND()else:
PARAMETER_ERR()if request.method == "PUT":
id= res_dir.get("id")
dict_id= res_dir.get("dict_id")
dict_label= res_dir.get("dict_label")
dict_number= res_dir.get("dict_number")
css_class= res_dir.get("css_class")
list_class= res_dir.get("list_class")
is_default= res_dir.get("is_default")
dict_sort= res_dir.get("dict_sort")
status= res_dir.get("status")
remark= res_dir.get("remark")if id and dict_id and dict_label anddict_number:
model=Dict_Data.query.get(id)ifmodel:
token= request.headers["Authorization"]
user=verify_token(token)
model.dict_id=dict_id
model.dict_label=dict_label
model.dict_number=dict_number
model.css_class=css_class
model.list_class=list_class
model.is_default=is_default
model.dict_sort=dict_sort
model.remark=remark
model.status=status
model.update_by= user['name']try:
model.update()returnSUCCESS()exceptException as e:
app.logger.error(f"更新字典數據失敗:{e}")returnUPDATE_ERROR()else:returnID_NOT_FOUND()else:returnNO_PARAMETER()
@dictData.route('/delete', methods=["DELETE"])defdelete():'''根據id刪除字典數據
:return:'''res_dir=request.get_json()if res_dir isNone:returnNO_PARAMETER()
dict_id= res_dir.get("id")ifdict_id:try:
model=Dict_Data.query.get(dict_id)ifmodel:
model.delete()returnSUCCESS()else:returnID_NOT_FOUND()exceptException as e:
app.logger.error(f"刪除失敗:{e}")returnDELETE_ERROR()else:return PARAMETER_ERR()
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的上古卷轴5python_基于Python-Flask的权限管理5:字典管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: excel根据rgb自动填充颜色_Exc
- 下一篇: 80网口打印机ip固定工具_网络打印机端