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学习教程之Numpy和Pandas的使用
Sep 11 Python
Python栈算法的实现与简单应用示例
Nov 01 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
python实现监控某个服务 服务崩溃即发送邮件报告
Jun 21 Python
python处理csv中的空值方法
Jun 22 Python
如何运行带参数的python脚本
Nov 15 Python
使用Tensorboard工具查看Loss损失率
Feb 15 Python
使用Python爬取弹出窗口信息的实例
Mar 14 Python
Python实现寻找回文数字过程解析
Jun 09 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 Python
python实现图片转字符画的完整代码
Feb 21 Python
python中if和elif的区别介绍
Nov 07 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 UTF8编码内的繁简转换类
2009/07/20 PHP
PHP实现的同步推荐操作API接口案例分析
2016/11/30 PHP
PHP设计模式之简单工厂和工厂模式实例分析
2019/03/25 PHP
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
2012/02/02 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
html的DOM中Event对象onblur事件用法实例
2015/01/21 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
2016/09/21 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
2016/10/10 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
2018/04/18 jQuery
nodejs的路径问题的解决
2018/06/30 NodeJs
Redux实现组合计数器的示例代码
2018/07/04 Javascript
详解vue-cli下ESlint 配置说明
2018/09/03 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
python爬虫之urllib3的使用示例
2018/07/09 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
python中的错误如何查看
2020/07/08 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
CSS3 3D制作实战案例分析
2016/09/18 HTML / CSS
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
物业管理个人自我评价
2013/11/08 职场文书
竞聘演讲稿范文
2014/01/12 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
大学奖学金获奖感言
2014/08/15 职场文书
学雷锋日活动总结
2015/02/06 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书