Django3.0 ASGI尝试及遇到的python的bug

一个关于django3.0和python3.7.0的问题

首先说一下我遇到的bug吧,django3.0一个月前已经发布了,当时就尝试了一下,但是遇到一个问题,访问其他url的时候没有问题,只是访问admin的时候程序就会退出,而且没有任何提示… 当时我以为是django的bug,毕竟是3.0Released的第一版,网上查了查也没找到类似的情况,后来就放下了,今天发现django已经Released到3.0.2了,于是我就想试试还有没有之前的问题。

升级django、runserver一气呵成,结果还是会莫名退出,后来我开启了debug模式,并在django的admin.site.urls代码中打了断点,虽然没停在断点处,但退出是却打印出了一些有用的信息

Exit 1 segmentation fault

这下在网上找到些有用的信息,貌似这是python的bug,不是django的,具体链接如下

https://bugs.python.org/issue34087 https://bugs.python.org/issue34241

我的python环境是3.7.0,于是我将我的python3.7升级到最新的3.7.6。果然访问admin的时候不再莫名退出了。

django3.0的新特性

https://www.djangoproject.com/weblog/2019/dec/02/django-3-released/

django3.0的三个重要特性是asgi、支持MariaDB10.1+和自定义枚举类型(TextChoices,IntegerChoices)。

ASGI

我主要尝试了一下asgi的django应用部署,我的项目名为django3_0_test

Daphne

https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/daphne/

# daphne myproject.asgi:application
daphne django3_0_test.asgi:application

Uvicorn

https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/uvicorn/

# uvicorn myproject.asgi:application
uvicorn django3_0_test.asgi:application