• Django细节小记


    前记:Django的ORM、模块有很多函数细节,要学会多看文档学习函数的细节

    聚合annotate()和aggregate()的使用

    简言之,annotate()得到的是查询集,类似all(),只不过多了一列属性,annotate()新增的,例如统计每个出版社有多少本书(书外键到出版社),但是统计书的单价总和,用annotate()会给每个书记录加个总和属性,此时不如使用aggregate(),aggregate()可以配合Sum()等方法直接得出一个字典,里面是key-value。
    当django聚合annotate或者aggregate时取出字典值。
    聚合annotate()后[0]可能报错,aggreagate()的取值也可能None,if not a:a = 0,也可以.get(a,0)。

    有关时间arrow的使用

    基于当前取出上个月年月
    import arrow
    arrow.now().shift(months=-1).strftime('%Y-%m')

    特殊distinct()的连用,要好好看相关的sql语句

    django的values()和distinct()实现了对values()中的值去重

    json交互

    json数据标准字符串是双引号,平时写字符串尽量双引号

    Form校验

    Django的Form校验可以写校验器,一些校验的逻辑可以不写在试图函数

    日志

    在Python的loggin模块中,主要包含四大金刚:
    Loggers:记录器
    Hanglers:处理器
    Filters:过滤器
    Formatters:格式化器
    loggins模块定义了日志级别,按时间严重程度由低到高排列,全部是大写,因为它们是常量:

    级别 级别数值 使用时机
    DEBUG 10 详细信息,常用于调试
    INGO 20 程序正常运行过程中产生的一些信息
    WARNING 30 警告用户,虽然程序还在正常工作,但有可能发生错误
    ERROR 40 由于更严重的问题,程序已不能执行一些功能了
    CRITICAL 50 严重错误,程序已不能继续运行

    正向查询和反向查询

    正向查询(通过字段),反向查询(通过表名),同样道理,科学 上网是正向代理,Nginx是反向代理

  • 相关阅读:
    简易高重用的jdbcutils工具封装实现类以及简易连接池实现
    http header 具体解释
    zoj 3888 Twelves Monkeys 二分+线段树维护次小值
    hyperLink的定制
    document.body.clientHeight的取值
    在循环中创建网页元素的问题
    mongo db 启动停止
    myeclipse 2014破解
    weblogic 集群部署时上传jsp不更新问题
    Spring classPath:用法
  • 原文地址:https://www.cnblogs.com/bqwzx/p/10657666.html
Copyright © 2020-2023  润新知