上古卷轴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()
上古卷轴5python_基于Python-Flask的权限管理5:字典管理相关推荐
- 基于Python Flask框架的共享自习室预约系统的设计与实现-计算机毕业设计源码+LW文档
1.1选题背景 信息技术的发展改变了我们的生活方式,许多行业的管理模式发生了根本性改变,特别是零售业受到电子商务强烈的冲击,越来越多的人参与到网购中.许多传统行业逐渐凋零,蓬勃发展的信息技术带来了大量 ...
- 【基于Python+Flask项目部署系列--03】开发测试环境配置-基于Ubuntu16.04
一.开发测试环境介绍 前提已经部署完[基于Python+Flask项目部署系列--02]Ubuntu16.04服务器安装.建议部署2套环境:开发测试环境+生产环境. 这篇文章主要讲解测试环境如何配置p ...
- 基于Python Flask框架+jquery Ajax技术实现的增删改查(CRUD)+Ajax的异步文件上传
运行界面(话不多说先上图) 运行之后的index界面,有登陆.注册功能 登陆界面,输入数据库中用户名.密码不为空且密码是加密的数据,进入main界面 注册界面,用的bootstrop的弹窗,用户名和密 ...
- 【Python程序设计】基于Python Flask的网易云音乐歌单采集与可视化分析平台-源码经过调试,100%可运行
基于Python Flask的网易云音乐歌单采集与可视化分析平台 项目获取 一.项目简介 二.开发环境 三.项目技术 四.功能介绍 五.功能结构 六.运行截图 项目获取 获取方式(点击下载):是云猿实 ...
- 【人工智能毕设之基于Python+flask+bilstm的评论情感分析系统-哔哩哔哩】 https://b23.tv/QU56eTl
[人工智能毕设之基于Python+flask+bilstm的评论情感分析系统-哔哩哔哩] https://b23.tv/QU56eTl https://b23.tv/QU56eTl
- 33【源码】数据可视化:基于 Echarts + Python Flask 动态实时大屏 - 制造业生产管理看板
效果展示 1.动态实时更新数据效果图 2.鼠标右键切换主题 一.确定需求方案 1. 屏幕分辨率 这个案例的分辨率是16:9,最常用的的宽屏比. 根据电脑分辨率屏幕自适应显示,F11全屏查看: 2. 部 ...
- 基于 Python+flask 构建态势感知系统(附完整源码)
一.开发 一个基于linux的态势感知系统,基于python和flask框架开发,项目文件目录如下: admin -核心算法 charts -图表生成 model -类 app.py -主文件 con ...
- 一款基于 Python+flask 的态势感知系统(附完整源码)
一.开发 一个基于linux的态势感知系统,基于python和flask框架开发,项目文件目录如下: admin -核心算法 charts -图表生成 model -类 app.py -主文件 con ...
- E3【数据可视化】【组件】基于Python+Flask+Echarts+HTML5拖放(DragDrop)实现的可拖放布局并自动保存布局的动态饼图
目录 一. 效果展示 二. 实现思路 所需知识点 三. 系统架构 四. 关键代码 1. 页面div布局 2. 布局拖放 drag drop 处理 3. 布局保存 4. Python Flask web ...
最新文章
- jieba分词(python使用篇)(一)
- QGraphicsScene 的简单理解--关于手册的简要翻译
- HDU 1559 最大子矩阵
- c51为啥要宏定义时钟_51单片机时钟实训报告
- mongodb和mysql创建表_MongoDB 数据库创建删除、表(集合)
- Asp.Net--回调技术
- ssh-add - 向认证代理添加 RSA 或 DSA 身份数据
- php5.6源码包,PHP-5.6.8 源码包编译安装
- python超市管理系统实训报告_java超市管理系统实训报告
- 第一章 WEB应用程序开发流程
- 关于Springboot、SpringCloud以及SpringCloud-Alibaba Nacos依赖问题
- unity游戏开发之打包apk谷歌上架报错总结
- php读取服务器csv文件,PHP进行读取CSV文件数据和生成CSV文件
- The Little Match Girl,摘自iOS应用Snow White and more stories
- 微信小程序设置解锁密码
- 配置路由器用SSH登陆
- ActiveSync同步Emulator
- Zotero文献管理
- “财界奥斯卡”CGMA全球管理会计2021年度中国大奖榜单揭晓
- mybatisplus批量操作