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读取指定目录下指定后缀文件并保存为docx
Apr 23 Python
python中子类调用父类函数的方法示例
Aug 18 Python
Python2.7下安装Scrapy框架步骤教程
Dec 22 Python
PyQt实现界面翻转切换效果
Apr 20 Python
python对日志进行处理的实例代码
Oct 06 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
Python面向对象程序设计之类的定义与继承简单示例
Mar 18 Python
详解Django admin高级用法
Nov 06 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
python两种获取剪贴板内容的方法
Nov 06 Python
Django+Django-Celery+Celery的整合实战
Jan 20 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
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
PHP中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
2016/09/22 PHP
javascript 伪数组实现方法
2010/10/11 Javascript
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
2019/01/15 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
python实现图片批量剪切示例
2014/03/25 Python
快速入手Python字符编码
2016/08/03 Python
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
python中abs&map&reduce简介
2018/02/20 Python
Python读取本地文件并解析网页元素的方法
2018/05/21 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
python实现递归查找某个路径下所有文件中的中文字符
2019/08/31 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
Python基于内置函数type创建新类型
2020/10/22 Python
英国床垫在线:Mattress Online
2016/12/07 全球购物
几道PHP的面试题
2012/05/19 面试题
优秀民警事迹材料
2014/01/29 职场文书
艺术教育实施方案
2014/05/03 职场文书
酒店员工培训方案
2014/06/02 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
创业计划书详解
2019/07/19 职场文书