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读取图片属性信息的实现方法
Sep 11 Python
python音频处理用到的操作的示例代码
Oct 27 Python
DRF跨域后端解决之django-cors-headers的使用
Jan 27 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 Python
python常用库之NumPy和sklearn入门
Jul 11 Python
使用Windows批处理和WMI设置Python的环境变量方法
Aug 14 Python
在Python中利用pickle保存变量的实例
Dec 30 Python
利用Python脚本实现自动刷网课
Feb 03 Python
TensorFlow 读取CSV数据的实例
Feb 05 Python
什么是python的列表推导式
May 26 Python
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
Apr 27 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中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
PHP写UltraEdit插件脚本实现方法
2011/12/26 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
详解jQuery事件
2017/01/13 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
react实现同页面三级跳转路由布局
2019/09/26 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
初学python数组的处理代码
2011/01/04 Python
用实例分析Python中method的参数传递过程
2015/04/02 Python
Python3 Random模块代码详解
2017/12/04 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
2019/08/30 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
安全生产管理责任书
2014/04/16 职场文书
五一劳动节演讲稿
2014/09/12 职场文书
我的大学四年规划书范文2014
2014/09/26 职场文书
餐厅服务员管理制度
2015/08/05 职场文书
团支部书记竞选稿
2015/11/21 职场文书
小学生反邪教心得体会
2016/01/15 职场文书
电脑开机弹出documents文件夹怎么回事?弹出documents文件夹解决方法
2022/04/08 数码科技