django query模块
作者:二十一 发布时间:2021-12-01 09:16:22
标签:django,query,模块
最近在接触一个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
返回设置
来源:https://segmentfault.com/a/1190000018946742
0
投稿
猜你喜欢
- 数据加密是一种保护数据安全的技术,通过对数据进行编码,使得未经授权的用户无法读取或改动数据。加密是通过使用加密算法和密钥实现的。加密算法是一
- 1.集合的定义集合的元素是不可重复的s = {1,2,3,1,2,3,4,5}print(s)print(type(s))s1 = {1}p
- 装饰器的应用场景附加功能数据的清理或添加:函数参数类型验证 @require_ints 类似请求前拦截数据格式转换 将函数返回字典改为 JS
- ChainMap是Python collections模块中的一个成员,它用来将多个map组合到一起。Chain是链条的意思,字面意思就是把
- 一、算法构造1.简单介绍一下knn算法KNN算法,也叫K最近邻算法。功能是分类。算法逻辑非常简单,说直白点就是:先找到跟你最近的k个邻居(假
- 采用最小二乘的求逆方法在大部分情况下是低效率的。特别地,当局镇非常大时效率更低。另外一种实现方法是矩阵分解,此方法使用tensorflow内
- andom.sample(list, n)即是从list中随机选取n个不同的元素# -*- coding: utf-8 -*- import
- LSMT层可以在troch.nn模块中找到LSTM类lstm = torch.nn.LSTM(*paramsters)1、__init__方
- 在设计中保持一致性(uniformity)是网页设计中一个重要的组成部分,它能使你的设计有效地传达信息而不会导致用户迷惑或焦虑。保证一致性的
- 这篇文章主要介绍了Python list运算操作代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- python中的Reportlab模块reportlab模块是用python语言生成pdf文件的模块安装:pip install repor
- 在ASP.net页面中,我们编写JavaScript脚本附加有注释时,这些注释也往往会随JavaScript脚本一起送到客户端。
- 1:除非你现在已经过了不惑之年了,否则你就一定要保持年轻人特有的激情!这里的激情,包含了那种说不明白的近似于冲动的东西,或者idea。也包含
- 先谈一下面包屑的由来:很久很久以前,在大森林的边上住着一个贫穷的樵夫,他妻子和两个孩子与他相依为命。他的儿子名叫汉赛尔,女儿名叫格莱特。后来
- 前言MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。 通过MERGE语句,根据一张表或多表联合查询的连接
- Python应用编程需要用到的针对不同数据库引擎的数据库接口:http://wiki.python.org/moin/DatabaseInt
- 自己写的方法,适用于linux,#!/usr/bin/python#coding=utf-8import sysimport os, os.
- 隐藏并修改文件的最后修改时间的asp-webshell。源码:<% '隐藏并修改文件的最后修改时间的aspshell '
- 不论什么时候,只要系统带有多个设备,而这些设备的性能又各不相同,就存在从慢速设备到快速设备不断更换工作地点以改善系统性能的可能性,这就是缓存
- 加载静态文件在一个网页中,不仅仅只有一个 html 骨架,还需要 css 样式文件, js 执行文件以及一些图片等。因此在 DTL 中加载静