django.contrib: Django 官方出品的“标准扩展库”
django.contrib 是 Django 官方提供的“可选但高度集成”的功能包集合,它的名字中的 “contrib” 意为 “contributed”(贡献的),表示这些模块是由 Django 社区或核心团队开发、经过严格测试、并随 Django 一起发布的“官方插件”。

image.png
数据库

image.png

image.png

image.png

image.png
[ForeignKey]
多对一时用,如car和manufacture,一个car只属于一个制造商,一个制造商生产多个car
那foreign key会放在多的那方

image.png

image.png

image.png
字段名称限制:

image.png
模型可以有一些自定义的方法:

image.png
Django的meta
jango 模型中的 Meta 类是一个内部类(inner class),用于定义与模型本身相关的元数据(metadata) —— 也就是“关于模型的配置信息”,而不是字段数据。
它不表示数据库中的任何列,但能控制 Django 如何处理这个模型:包括数据库表名、排序方式、权限、是否抽象等。

image.png
模型方法
可以自定义方法

image.png
一些meta示例

image.png
annotate和aggregate的区别
annotate → “每一条都加个统计字段” → 返回 QuerySet
aggregate → “整个表算一个总数” → 返回字典
要显示列表?用 annotate。
要显示总数?用 aggregate。

image.png
annotate和values
values() 必须在 annotate() 之前

image.png
流式传输大型 CSV 文件
当处理生成非常大的响应的视图时,您可能需要考虑使用 Django 的 StreamingHttpResponse。例如,通过流式传输一个生成时间很长的文件,您可以避免负载均衡器放弃可能在服务器生成响应时超时连接。

image.png