| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .epub | 3 |
| 摘要 | ||
Django 3.1版本引入了对异步视图和中间件的支持,支持Python 3.6到3.9版本,并增加了默认密码哈希迭代次数。同时,文档提到了多个功能的弃用,包括JSONField的弃用以及对SHA-1加密支持的逐步移除。此外,还对媒体文件的Unicode处理、缓存中间件的拆分等功能进行了说明。 | ||
| AI总结 | ||
以下是《Django 3.1.x Documentation》的中文总结:
---
### Django 3.1 发布说明
**发布日期:2020年8月4日**
Django 3.1版本带来了多项新功能、改进以及一些不兼容的更改。以下是主要内容:
#### 1. **新功能**
- **异步支持**
Django 3.1新增了对异步请求路径的支持,包括异步视图、异步中间件和异步测试。
示例代码:
```python
async def my_view(request):
await asyncio.sleep(0.5)
return HttpResponse('Hello, async world!')
```
异步功能在WSGI和ASGI模式下均支持,但WSGI模式下可能有性能损失。
- **admin界面改进**
- 新增`EmptyFieldListFilter`,允许在admin变更列表视图中过滤空值(空字符串和null)。
- admin右侧边栏的筛选器新增“清除所有筛选”链接。
- admin默认启用侧边栏导航,可通过自定义`AdminSite`禁用。
- **密码策略优化**
默认情况下,PBKDF2密码哈希器的迭代次数从180,000增加到216,000,提升了安全性。
- **文件和序列化**
- JSON和YAML序列化器默认使用Unicode输出。若需旧行为,可设置`ensure_ascii=True`(JSON)或`allow_unicode=False`(YAML)。
- 从Django 3.1开始,文件默认要求UTF-8编码,`FILE_CHARSET`设置被弃用。
#### 2. **弃用的功能**
- **admin CSS类**
`row1`和`row2`类被移除,建议使用`:nth-child(odd)`和`:nth-child(even)`伪类。
- **密码函数**
`make_password()`现在要求参数必须是字符串或字节类型。
- **JSONField**
`django.contrib.postgres.fields.JSONField`和`django.contrib.postgres.forms.JSONField`被弃用,建议使用`models.JSONField`和`forms.JSONField`。
- **其他弃用**
- `HttpRequest.is_ajax()`方法被移除。
- `Django-admin.py`入口被移除。
- `Django.conf.urls.url()`被移除。
- `Django.contrib.postgres.fields.JSONField`被移除。
#### 3. **已知问题**
- **密码重置令牌**
Django 3.1不再支持使用SHA-1算法的密码重置令牌。
- **旧版本兼容性**
若升级多个Django实例,建议在过渡期间设置`DEFAULT_HASHING_ALGORITHM='sha1'`以保持兼容性。
#### 4. **其他改进**
- **缓存中间件**
`CacheMiddleware`被拆分为三个独立类,增加了灵活性。
- **评论系统重构**
通过Google Summer of Code项目,评论系统进行了重大重构,提升了灵活性和可定制性。
- **依赖升级**
- XRegExp从2.0.0升级到3.2.0
- jQuery从3.4.1升级到3.5.1
- Select2从4.0.7升级到4.0.13
#### 5. **已移除的功能**
- **ModelChoiceIterator**
现在返回包含`ModelChoiceIteratorValue`实例的元组,若需字段值,可使用`.value`属性。
- **时间区处理**
`Django.utils.timezone.FixedOffset`被弃用,建议使用`datetime.timezone`。
---
总结:Django 3.1版本在异步支持、admin界面、密码安全和文件处理等方面有显著改进,同时移除了部分旧功能。升级用户需注意不兼容更改,并确保项目兼容新版本。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
3087 页请下载阅读 -
文档评分














Django 3.1.x Documentation
Django 5.1.2 Documentation