#!/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()

上古卷轴5python_基于Python-Flask的权限管理5:字典管理相关推荐

  1. 基于Python Flask框架的共享自习室预约系统的设计与实现-计算机毕业设计源码+LW文档

    1.1选题背景 信息技术的发展改变了我们的生活方式,许多行业的管理模式发生了根本性改变,特别是零售业受到电子商务强烈的冲击,越来越多的人参与到网购中.许多传统行业逐渐凋零,蓬勃发展的信息技术带来了大量 ...

  2. 【基于Python+Flask项目部署系列--03】开发测试环境配置-基于Ubuntu16.04

    一.开发测试环境介绍 前提已经部署完[基于Python+Flask项目部署系列--02]Ubuntu16.04服务器安装.建议部署2套环境:开发测试环境+生产环境. 这篇文章主要讲解测试环境如何配置p ...

  3. 基于Python Flask框架+jquery Ajax技术实现的增删改查(CRUD)+Ajax的异步文件上传

    运行界面(话不多说先上图) 运行之后的index界面,有登陆.注册功能 登陆界面,输入数据库中用户名.密码不为空且密码是加密的数据,进入main界面 注册界面,用的bootstrop的弹窗,用户名和密 ...

  4. 【Python程序设计】基于Python Flask的网易云音乐歌单采集与可视化分析平台-源码经过调试,100%可运行

    基于Python Flask的网易云音乐歌单采集与可视化分析平台 项目获取 一.项目简介 二.开发环境 三.项目技术 四.功能介绍 五.功能结构 六.运行截图 项目获取 获取方式(点击下载):是云猿实 ...

  5. 【人工智能毕设之基于Python+flask+bilstm的评论情感分析系统-哔哩哔哩】 https://b23.tv/QU56eTl

    [人工智能毕设之基于Python+flask+bilstm的评论情感分析系统-哔哩哔哩] https://b23.tv/QU56eTl https://b23.tv/QU56eTl

  6. 33【源码】数据可视化:基于 Echarts + Python Flask 动态实时大屏 - 制造业生产管理看板

    效果展示 1.动态实时更新数据效果图 2.鼠标右键切换主题 一.确定需求方案 1. 屏幕分辨率 这个案例的分辨率是16:9,最常用的的宽屏比. 根据电脑分辨率屏幕自适应显示,F11全屏查看: 2. 部 ...

  7. 基于 Python+flask 构建态势感知系统(附完整源码)

    一.开发 一个基于linux的态势感知系统,基于python和flask框架开发,项目文件目录如下: admin -核心算法 charts -图表生成 model -类 app.py -主文件 con ...

  8. 一款基于 Python+flask 的态势感知系统(附完整源码)

    一.开发 一个基于linux的态势感知系统,基于python和flask框架开发,项目文件目录如下: admin -核心算法 charts -图表生成 model -类 app.py -主文件 con ...

  9. E3【数据可视化】【组件】基于Python+Flask+Echarts+HTML5拖放(DragDrop)实现的可拖放布局并自动保存布局的动态饼图

    目录 一. 效果展示 二. 实现思路 所需知识点 三. 系统架构 四. 关键代码 1. 页面div布局 2. 布局拖放 drag drop 处理 3. 布局保存 4. Python Flask web ...

最新文章

  1. jieba分词(python使用篇)(一)
  2. QGraphicsScene 的简单理解--关于手册的简要翻译
  3. HDU 1559 最大子矩阵
  4. c51为啥要宏定义时钟_51单片机时钟实训报告
  5. mongodb和mysql创建表_MongoDB 数据库创建删除、表(集合)
  6. Asp.Net--回调技术
  7. ssh-add - 向认证代理添加 RSA 或 DSA 身份数据
  8. php5.6源码包,PHP-5.6.8 源码包编译安装
  9. python超市管理系统实训报告_java超市管理系统实训报告
  10. 第一章 WEB应用程序开发流程
  11. 关于Springboot、SpringCloud以及SpringCloud-Alibaba Nacos依赖问题
  12. unity游戏开发之打包apk谷歌上架报错总结
  13. php读取服务器csv文件,PHP进行读取CSV文件数据和生成CSV文件
  14. The Little Match Girl,摘自iOS应用Snow White and more stories
  15. 微信小程序设置解锁密码
  16. 配置路由器用SSH登陆
  17. ActiveSync同步Emulator
  18. Zotero文献管理
  19. “财界奥斯卡”CGMA全球管理会计2021年度中国大奖榜单揭晓
  20. mybatisplus批量操作

热门文章

  1. CDN视频存储解决方案
  2. BGP边界网关协议线路优势
  3. 服务器高并发的解决方法
  4. 4种分支机构服务器管理最佳实践—Vecloud微云
  5. 浅谈SD-WAN未来的发展方向
  6. chrome中F12工具说明
  7. Vue + Element UI 实现权限管理系统 前端篇(七):功能组件封装
  8. jdbc中如何实现模糊查询
  9. ASP.NET MVC学习资料 新增几个开源项目
  10. textarea中的换行符