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果然来自霍 ...
随机推荐
- The world is in my hands
Null项 其实我还是比较希望你能理解我的心情 无聊666回味
- JDK1.8 HashMap--treeifyBin()方法
/*树形化*/ final void treeifyBin(Node<K,V>[] tab, int hash) { int n, index; Node<K,V> e;// ...
- Unity shader学习之屏幕后期处理效果之高度雾,重建world pos方法2
这里使用一种更高效地从深度纹理中重建世界坐标的方法. 首先计算摄像机的视锥体的四条射线向量进行线性插值,插值后的值便是该像素在世界空间坐标下到摄像机的方向. 然后通过与深度值相乘即可得到摄像机位置到该 ...
- [python 练习] 计算个税
题目:利用python计算个税 说明:python有序字典的使用 代码: # -*- coding: utf-8 -*- from collections import OrderedDict # 税 ...
- 在Ubuntu16.04中python环境下实现tab键补全
1.编写tab.py的代码: 1 #!/usr/bin/env python 2 # python startup file 3 import sys 4 import readline 5 impo ...
- MariaDB导入XXX.sql文件
使用的 MariaDB5.5.52 开启数据库服务: systemctl start mariadb 要使用该脚本,登录数据, mysql -u root -p 根据提示输入你安装数据库时需设置密码, ...
- 什么是HTML DOM对象
HTML DOM 对象 HTML DOM Document 对象 Document 对象 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 ...
- Flutter中SQLite数据库的使用
同时支持android和ios 支持事务和批量操作 支持插入/查询/更新/删除操作 在iOS和Android上的后台线程中执行数据库操作 1.添加依赖 dependencies: ... sqflit ...
- phpstrom 快速定位到当前编辑文件
方法1(手动定位): 打开所要查找的文件,然后点击上图中红框中的按钮即可快速定位. 方法二(自动定位): Project面板右上角有个准星类的图标,点击后勾选上Autoscorll from Sour ...
- python实现简单算法
#选择n^2def selectSort(li): for i in range(len(li)-1): minLoc = i for j in range(i+1,len(li)): if li[j ...