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返回设置
相关文章
python框架Django实战商城项目之工程搭建过程图文详解
这篇文章主要介绍了python框架Django实战商城项目之工程搭建过程,这个项目很像京东商城,项目开发采用前后端不分离的模式,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下2020-03-03
PyQt5中QCommandLinkButton的详细教程与应用实战
在PyQt5中,QCommandLinkButton是一个特殊的按钮控件,它最初在Windows Vista中引入,并因其独特的外观和功能在GUI应用程序中得到了广泛应用,本教程将结合实际案例,详细介绍QCommandLinkButton在PyQt5中的用法,需要的朋友可以参考下2024-07-07
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
这篇文章主要介绍了Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-09-09


最新评论