Django 3.1 发布,异步支持增强

Django 3.1 已经发布。此版本亮点包括:

  • 进一步支持异步视图与异步中间件。

要开始使用异步视图,需要声明一个视图 :async def

async def my_view(request):
    await asyncio.sleep(0.5)
    return HttpResponse('Hello, async world!')

无论是在 WSGI 还是 ASGI 模式下运行,都支持所有异步功能。但是,在 WSGI 模式下使用异步代码会导致性能下降。Django 的 ORM、缓存层和其它长时间运行网络调用的代码尚不支持异步访问。

  • 新增 models.JSONField 和 forms.JSONField,可在所有受支持的数据库后端上使用。这两个字段都支持使用自定义 JSON 编码器和解码器。
from django.db import models

class ContactInfo(models.Model):
    data = models.JSONField()

ContactInfo.objects.create(data={
    'name': 'John',
    'cities': ['London', 'Cambridge'],
    'pets': {'dogs': ['Rufus', 'Meg']},
})
ContactInfo.objects.filter(
    data__name='John',
    data__pets__has_key='dogs',
    data__cities__contains='London',
).delete()

  • tokens、cookies、sessions 和 signatures 现在使用 SHA-256 哈希算法。

详情查看发布公告:

https://www.djangoproject.com/weblog/2020/aug/04/django-31-released

猜你喜欢

转载自www.oschina.net/news/117695/django-3-1-released