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 09 Python
python实现对求解最长回文子串的动态规划算法
Jun 02 Python
flask框架视图函数用法示例
Jul 19 Python
python 使用opencv 把视频分割成图片示例
Dec 12 Python
python标准库os库的函数介绍
Feb 12 Python
Window系统下Python如何安装OpenCV库
Mar 05 Python
Keras之fit_generator与train_on_batch用法
Jun 17 Python
Python爬虫使用bs4方法实现数据解析
Aug 25 Python
Python filter()及reduce()函数使用方法解析
Sep 05 Python
基于Python制作一副扑克牌过程详解
Oct 19 Python
python如何获得list或numpy数组中最大元素对应的索引
Nov 16 Python
pycharm部署django项目到云服务器的详细流程
Jun 29 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中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
不使用浏览器运行javascript代码的方法
2013/07/24 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
JS判断数组那点事
2017/10/10 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
python使用post提交数据到远程url的方法
2015/04/29 Python
Python遍历pandas数据方法总结
2018/02/09 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
python dataframe NaN处理方式
2019/12/26 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
医学生自荐信
2013/12/03 职场文书
模范家庭事迹材料
2014/02/10 职场文书
2014年消防工作实施方案
2014/02/20 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
组工干部对照检查材料
2014/08/25 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
离婚被告答辩状
2015/05/22 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
Python类方法总结讲解
2021/07/26 Python