django query模块


Posted in Python onApril 20, 2019

最近在接触一个Django项目,使用的是fbv( function-base views )模式,看起来特别不舒服,项目中有一个模型类117个字段,看我的有点晕,不过还是得干呀,生活呀,头发呀。

个人觉得这个模块用处不是很大,并且写的也不是很好。看了看源码如此简单,就给大家分享一下,也好久没有给大家分享东西了。

import json
def get_default_valcastfunc(val_cast_type=None):
 """通过一下方法传入的字符串判断使用哪种数据返回"""
 if val_cast_type == 'int':
  return 0, int
 elif val_cast_type == 'listjson':
  return '[]', json.loads
 elif val_cast_type == 'dictjson':
  return '{}', json.loads
 return None, None
def get_query_value(request, key, default=None, val_cast_func=None, val_cast_type=None):
 """ 通过val_cast_type获取到优化数据的函数,或者通过val_cast_func函数传入val """
 if val_cast_type in ['int', 'listjson', 'dictjson']:
  default, val_cast_func = get_default_valcastfunc(val_cast_type)
 value = request.POST.get(key) or request.GET.get(key) or default
 return val_cast_func(value) if val_cast_func else (value or '')自认为的几个重点

request.POST.get这样取值即使key不存在也不会报错,而是返回None,而request.POST[key]这样会报错KeyError ,GET同POST Django的模型类使用get若无值,则会报错。

在返回的时候使用参数val_cast_func,而val_cast_func并未传入,而是通过get_default_valcastfunc返回设置

Python 相关文章推荐
Python装饰器decorator用法实例
Nov 10 Python
Python的Django框架中的数据过滤功能
Jul 17 Python
python用模块zlib压缩与解压字符串和文件的方法
Dec 16 Python
Python探索之URL Dispatcher实例详解
Oct 28 Python
Python requests发送post请求的一些疑点
May 20 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
Oct 17 Python
python与mysql数据库交互的实现
Jan 06 Python
Python实现FLV视频拼接功能
Jan 21 Python
Pycharm配置lua编译环境过程图解
Nov 28 Python
python实战之一步一步教你绘制小猪佩奇
Apr 22 Python
Pytorch可视化的几种实现方法
Jun 10 Python
python中 .npy文件的读写操作实例
Apr 14 Python
不到20行代码用Python做一个智能聊天机器人
Apr 19 #Python
详解Python3 基本数据类型
Apr 19 #Python
python面向对象法实现图书管理系统
Apr 19 #Python
python远程连接MySQL数据库
Apr 19 #Python
详解Python匿名函数(lambda函数)
Apr 19 #Python
解决python3中的requests解析中文页面出现乱码问题
Apr 19 #Python
Python3中列表list合并的四种方法
Apr 19 #Python
You might like
php简单复制文件的方法
2016/05/09 PHP
降低PHP Redis内存占用
2017/03/23 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
Jquery性能优化详解
2014/05/15 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
js实现带按钮的上下滚动效果
2015/05/12 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
2016/05/03 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
2016/11/01 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
Angular2进阶之如何避免Dom误区
2018/04/02 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
微信小程序自定义toast的实现代码
2018/11/16 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
2019/02/22 Javascript
解析原来浏览器原生支持JS Base64编码解码
2019/08/12 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
2020/11/02 Javascript
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
英国网上电器商店:Electricshop
2020/03/15 全球购物
销售顾问的岗位职责
2013/11/13 职场文书
文化建设工作方案
2014/05/12 职场文书
应届本科毕业生求职信
2014/07/23 职场文书
捐款感谢信
2015/01/20 职场文书
护士2015年终工作总结
2015/04/29 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
侵犯商业秘密的律师函
2015/05/27 职场文书
如何撰写促销方案?
2019/07/05 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL