本文首发于公众号:Hunter后端 原文链接:Django笔记二十四之数据库函数之比较和转换函数 这一篇笔记开始介绍几种数据库函数,以下是几种函数及其作用 Cast 转换类型 Coalesce 优先取值 Greatest 返回较大值 Nullif 值相同返回 None 1.model 准备 这一篇笔记我们主要用到 Author 和 Entry model 作为示例,下面的是 Author model: class Author(models.Model): name = models.CharF…
本文首发于公众号:Hunter后端 原文链接:Django笔记二十八之数据库查询优化汇总 这一篇笔记将从以下几个方面来介绍 Django 在查询过程中的一些优化操作,有一些是介绍如何获取 Django 查询转化的 sql 语句,有一些是理解 QuerySet 是如何获取数据的. 以下是本篇笔记目录: 性能方面 使用标准的数据库优化技术 理解 QuerySet 操作尽量在数据库中完成而不是在内存中 使用唯一索引来查询单个对象 如果知道需要什么数据,那么就立刻查出来 不要查询你不需要的数据 使用批量…
本文首发于公众号:Hunter后端 原文链接:Django笔记三十之log日志的记录详解 这一节介绍在 Django 系统里使用 logging 记录日志 以下是一个简单的 logging 模块示例,可以先预览一下,接下来会详细介绍各个模块的具体功能: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': '%(levelname)s %(messag…
这篇笔记介绍的 field options,也就是 字段的选项属性. 首先,关于 model,是数据库与 python 代码里的一个映射关系,每一个 model 是django.db.models.Model 的一个子类. model 里每一个属性值(即字段)代表数据库的字段,通过 定义 models.py 里的 class,可以自动生成数据库里的表和字段,比如之前的 Question. 主键 id 字段如果不手动设置都会默认创建. 比如下面这个 model,我们将以此为例介绍各个字段的属性值:…
本文首发于公众号:Hunter后端 原文链接:Django笔记二十之手动编写migration文件 前面介绍过,migration 文件主要记录的是 Django 系统 model 的变化,然后通过 migrate 命令将变化适配到数据库中. 比如在某个 application 下新增了某张表,或者对某张表更改了字段,可以生成 migration 文件,然后通过 migrate 更改到数据库. 除了系统能够自动生成的,我们还可以手动创建 migration 文件来操作数据库,这个用途主要是用于比…
本文首发于公众号:Hunter后端 原文链接:Django笔记二十二之多数据库操作 这一篇笔记介绍一下多数据库操作. 在第十篇笔记的时候,简单介绍过 using() 的使用方法,多个数据库就是通过 using(db_alias) 的方式来来指定选中的数据库,这里介绍一下同步库表结构时候的操作. 定义方式 同步命令 指定数据库操作 1.定义方式 在 settings.py 的 DATABASES 变量中可以定义多个数据库,如果是多个数据库,示例如下: DATABASES = { 'default'…
本文首发于公众号:Hunter后端 原文链接:Django笔记二十五之数据库函数之日期函数 日期函数主要介绍两个大类,Extract() 和 Trunc() Extract() 函数作用是提取日期,比如我们可以提取一个日期字段的年份,月份,日等数据 Trunc() 的作用则是截取,比如 2022-06-18 12:12:12,我们可以根据需求获取到日期 2020-06-18,或者更细粒度到时分秒 这次我们用到下面这个 model: class Experiment(models.Model):…
本文首发于公众号:Hunter后端 原文链接:Django笔记二十六之数据库函数之数学公式函数 这一篇来介绍一下公式函数,主要是数学公式. 其中 sin,cos 这种大多数情况下用不上的就不介绍了,主要介绍下面几种: Abs() 绝对值 Ceil() 向上取整 Floor() 向下取整 Mod() 取余 Power() 乘方 Round() 四舍五入 Sqrt() 获取平方根 我们用到下面这个 model: class MathFunction(models.Model): x = models…
本文首发于公众号:Hunter后端 原文链接:Django笔记二十九之中间件介绍 这一节介绍一下 Django 的中间件. 关于中间件,官方文档的解释为:中间件是一个嵌入 Django 系统的 request 和 response 的钩子框架,是一个能够全局改变 Django 输入/输出的系统. 我们可以这样理解,一个 request 请求发送到 Django 系统的过程中,在经过路由和视图的处理前,会先经过一层处理,这个处理操作可以是日志记录,可以是登录验证甚至你想在系统里定义的功能,这个操作…
本文首发于公众号:Hunter后端 原文链接:Django笔记三十二之session登录验证操作 这一篇笔记将介绍 session 相关的内容,包括如何在系统中使用 session,以及利用 session 实现登录认证的功能. 这篇笔记将分为以下几个内容: session 的使用流程 session 的配置和相关方法 users 模块的准备 session 验证的的实现 Session 表介绍 登录验证的几种实现形式 1.session 的使用流程 cookie 和 session 的基本概念…