django query模块

 更新时间:2019年04月20日 10:36:45   作者:二十一  
这篇文章主要介绍了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实现解析ini配置文件的示例详解

    Python实现解析ini配置文件的示例详解

    在开发过程中,配置文件是少不了的,而且配置文件是有专门的格式的,比如:ini, yaml, toml 等等。而对于 Python 而言,也都有相应的库来解析相应格式的文件,下面我们来看看 ini 文件要如何解析
    2022-09-09
  • 彻底搞懂 python 中文乱码问题(深入分析)

    彻底搞懂 python 中文乱码问题(深入分析)

    现在有的小伙伴为了躲避中文乱码的问题甚至代码中不使用中文,注释和提示都用英文,我曾经也这样干过,但这并不是解决问题,而是逃避问题,今天我们一起彻底解决 Python 中文乱码的问题
    2020-02-02
  • python框架Django实战商城项目之工程搭建过程图文详解

    python框架Django实战商城项目之工程搭建过程图文详解

    这篇文章主要介绍了python框架Django实战商城项目之工程搭建过程,这个项目很像京东商城,项目开发采用前后端不分离的模式,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2020-03-03
  • PyQt5中QCommandLinkButton的详细教程与应用实战

    PyQt5中QCommandLinkButton的详细教程与应用实战

    在PyQt5中,QCommandLinkButton是一个特殊的按钮控件,它最初在Windows Vista中引入,并因其独特的外观和功能在GUI应用程序中得到了广泛应用,本教程将结合实际案例,详细介绍QCommandLinkButton在PyQt5中的用法,需要的朋友可以参考下
    2024-07-07
  • python读取文本绘制动态速度曲线

    python读取文本绘制动态速度曲线

    这篇文章主要为大家详细介绍了python读取文本绘制动态速度曲线,多图同步显示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • 基于深度学习和OpenCV实现目标检测

    基于深度学习和OpenCV实现目标检测

    这篇文章主要介绍了通过使用OpenCV进行基于深度学习的对象检测以及使用OpenCV检测视频,文中的示例代码讲解详细,需要的可以参考一下
    2021-12-12
  • pycharm右键没有run,run不了问题的解决

    pycharm右键没有run,run不了问题的解决

    这篇文章主要介绍了pycharm右键没有run,run不了问题的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)

    Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)

    这篇文章主要介绍了Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 示例详解pyqtgraph绘制实时更新数据的图

    示例详解pyqtgraph绘制实时更新数据的图

    PyQtGraph是一个基于PyQt和NumPy的Python库,它专为实时数据可视化而设计,本文通过实例代码给大家介绍pyqtgraph绘制实时更新数据的图,感兴趣的朋友一起看看吧
    2024-12-12
  • wxPython绘图模块wxPyPlot实现数据可视化

    wxPython绘图模块wxPyPlot实现数据可视化

    这篇文章主要为大家详细介绍了wxPython绘图模块wxPyPlot实现数据可视化,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11

最新评论