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是反向代理
Django细节小记的更多相关文章
- [Django] 单元测试小记
从前很少写单元测试了,特别是web应用.最近不知不觉喜欢起来这个事情了,发现单元测试对于软件的模块,正交性有很大促进作用,因为函数,模块写的不合理,单元测试写起来就麻烦的多呀.公司的项目一直都是用Dj ...
- django细节
1.处理请求 1.1 /add/?a=4&b=5 这样GET方法进行[获取参数] from django.shortcuts import render from django.http i ...
- Django的小记
大致按流程列出来 在pycham中创建Django project时要确定机器上的版本及你要用的版本,机器上一般情况下默认最新版本2.1(2018年11月),根据需要下载相应版本 创建好工程后就要创建 ...
- Django学习小记1-安装配置
Django是一个开放源代码的Web应用框架,由Python写成. python 中的web框架有许多例如:Django.Tornado.Flask..而Django相较与其他WEB框架其优势为:大而 ...
- C#中Dictionary小记
使用C#中Dictionary的一下细节小记: 一.Dictionary.Add(key,value) 与 Dictionary[key]=value的区别: 如果Dictionary中已经有了key ...
- Django应用部署 - 上线指南
http://blog.csdn.net/pipisorry/article/details/46957613 python manage.py runserver已经很接近于服务器的形式,但是并不能 ...
- Python资源大全
The Python Tutorial (Python 2.7.11) 的中文翻译版本.Python Tutorial 为初学 Python 必备官方教程,本教程适用于 Python 2.7.X 系列 ...
- Github上的python开源项目
Python开源项目,期待大家和我们一起共同维护 github排名榜单 https://github.com/trending github搜索榜单:https://github.com/search ...
- JavaScript正则表达式replace的一个坑
题图来自:https://wallhaven.cc/w/md353k 经常听大家说JavaScript是魔法语言,咱却没有什么深刻体会.直到这回踩到这个坑,我终于醒悟了,JavaScript果然来自霍 ...
随机推荐
- leetcode网学习笔记(1)
https://leetcode-cn.com/problems/reverse-linked-list/submissions/ 206 反转链表 错误原因:没有考虑到链表为空以及链表只有一个元素的 ...
- Junit4 之 Assert 静态方法介绍
Junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类. 1.assertTrue/False([String message,]boolean cond ...
- C# 求链表 list 中 属性的 最大值 最小值
获取链表List中对象属性最大值最小值(Max,Min)的方法: 1.创建一个类,类中有一个属性A /// <summary> /// 用于测试属性的类 /// </summary& ...
- python,Day2,基础 2
list和dict list是一种有序的集合,可以随时添加和删除其中的元素. 例如: >>>classmates = ['eason','grace','alice'] >&g ...
- Flask实战-留言板-使用Bootstrap-Flask简化页面编写
使用Bootstrap-Flask简化页面编写 扩展Bootstrap-Flask内置了可以快速渲染Bootstrap样式HTML组件的宏,并提供了内置的Bootstap资源,方便快速开发,使用它可以 ...
- 2018-2019-2 20165215《网络攻防技术》Exp6 信息搜集与漏洞扫描
目录 实验目的 实验内容 基础知识 实验步骤 (一)各种搜索技巧的应用 Google Hacking 搜索网址目录结构 搜索特定类型的文件 路由侦查 (二)DNS IP注册信息的查询 whois域名注 ...
- Linux基础命令---ipcs显示进程通信
ipcs ipcs指令用来显示进程间通信状况.“-i”选项允许指定特定的资源id.将只打印有关此id的信息. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.SUS ...
- rabbitMq及安装、fanout交换机-分发(发布/订阅)
<dependency> <groupId>com.rabbitmq</groupId> <artifactId& ...
- 字段like多个条件(or关系)简写
字段 like ‘匹配串1’or 字段 like ‘匹配串2’or ... 有如下简写方式 oracle: select * from tablex where REGEXP_LIKE(字段名, ' ...
- connect设置连接超时
转自:庖丁解牛 /** * connect_timeout - 带超时的connect(方法中已执行connect) * @fd:文件描述符 * @addr:地址结构体指针 * @wait_secon ...