| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .epub | 3 |
| 摘要 | ||
Django 3.0引入了ASGI支持,使Django能够作为ASGI应用运行,同时保留WSGI支持。异步功能仅适用于ASGI环境,且当前仅支持外部ASGI应用,内部仍为同步。新增PostgreSQL的ExclusionConstraint类、Filter expressions直接用于QuerySet过滤、以及TextChoices、IntegerChoices和Choices枚举类型用于模型字段选择。安全方面,X_FRAME_OPTIONS默认改为'DENY',SECURE_CONTENT_TYPE_NOSNIF默认启用。测试方面新增--headless、--pdb等选项。向后不兼容变更包括Model.save()在提供主键默认值时始终执行INSERT。Django 3.0支持Python 3.6至3.9,并正式支持MariaDB 10.1及以上版本。 | ||
| AI总结 | ||
Django 3.0 开始支持 ASGI 应用运行,迈出了实现完全异步能力的第一步。这补充了现有的 WSGI 支持,但异步功能仅适用于 ASGI 环境,且目前仅作用于外层应用,内部仍是同步的,异步中间件和视图等尚未支持。作为副作用,Django 现在会阻止在异步上下文中调用“异步不安全”的代码(如 ORM 操作),若触发 `SynchronousOnlyOperation` 错误,需将数据库操作移至同步子线程。
**新增核心功能:**
- **PostgreSQL 排除约束**:通过 `ExclusionConstraint` 类在模型 `Meta.constraints` 中定义。
- **过滤器表达式**:输出 `BooleanField` 的表达式可直接用于 `QuerySet` 过滤器,无需先注解再过滤。
- **模型字段选择枚举**:新增 `TextChoices`、`IntegerChoices` 和 `Choices` 类型,支持可翻译的人类可读标签。
**安全与测试改进:**
- `X_FRAME_OPTIONS` 默认值改为 `'DENY'`,若需使用框架需显式设置。
- `SECURE_CONTENT_TYPE_NOSNIF` 默认启用,`SecurityMiddleware` 会添加 `X-Content-Type-Options: nosniff` 头,并可发送 `Referrer-Policy` 头。
- 测试客户端新增 `raise_request_exception` 参数控制异常是否抛出;支持按测试名模式筛选(`-k` 选项)、Selenium 无头模式(`--headless`)、从指定模块开始运行(`--start-at`/`--start-after`)以及错误时启动调试器(`--pdb`)。
**向后不兼容变更:**
- `Model.save()` 在为主键提供默认值时,对新实例始终执行单次 `INSERT` 查询,不再尝试查找已有行。
**其他重要信息:**
- 支持 Python 3.6、3.7、3.8、3.9,Django 2.2 是最后一个支持 Python 3.5 的版本。
- 官方支持 MariaDB 10.1 及以上版本。
- 建议第三方应用作者放弃对 Django 2.2 之前版本的支持。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
3078 页请下载阅读 -
文档评分














Django 3.0.x Documentation
Django CMS 3.0.x Documentation
Spring Framework 3.0.x Changelog