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 BeautifulSoup设置页面编码的方法
Apr 03 Python
python 安装virtualenv和virtualenvwrapper的方法
Jan 13 Python
分享几道你可能遇到的python面试题
Jul 24 Python
详解 Python中LEGB和闭包及装饰器
Aug 03 Python
python设置值及NaN值处理方法
Jul 03 Python
Python笔试面试题小结
Sep 07 Python
numpy库reshape用法详解
Apr 19 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
Jun 30 Python
python Scrapy框架原理解析
Jan 04 Python
Python基础之条件语句详解
Jun 16 Python
Python+Pillow+Pytesseract实现验证码识别
May 11 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
简单的页面缓冲技术
2006/10/09 PHP
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
PHP5.5迭代生成器用法实例详解
2016/03/16 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
js判断文本框输入的内容是否为数字
2015/12/23 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
基于JS+Canves实现点击按钮水波纹效果
2016/09/15 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
五步轻松实现zTree的使用
2017/11/01 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
Python实现全局变量的两个解决方法
2014/07/03 Python
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
奶茶店创业计划书范文
2014/01/17 职场文书
老师对学生的评语
2014/04/18 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
标准的毕业生自荐信
2014/04/20 职场文书
社区工作者演讲稿
2014/05/23 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
郭明义电影观后感
2015/06/08 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers