Django 开发服务器因错误而关闭
Django development server shutdown on error
我是 运行 本地主机上的开发服务器,用于测试 Django 应用程序。大约一周前,开发服务器开始因错误退出——这并不理想。
举个例子,假设我想创建一个新视图,制作我的模板,然后在 urls 中添加以下内容:
urlpatterns = [
...
path('forgotten-password', ForgottenPassword.as_view(), name='forgotten_password'),
]
我还没有创建基于 ForgottenPassword class 的视图,所以服务器正确地抛出错误:
File "/code/accounts/urls.py", line 19, in <module>
path('forgotten-password', ForgottenPassword.as_view(), name='forgotten_password'),
NameError: name 'ForgottenPassword' is not defined
服务器随后退出。这不是期望的行为。我希望服务器保持错误状态,直到我修复错误(这发生在大约一周前)。
发生这种情况的原因是什么,我如何确保开发服务器在发生错误时保持运行状态以避免必须重新启动整个应用程序?
注意。
我们大约在同一时间从 django 2.1 升级到 2.2,这是 2.2 中的期望行为吗?
注意。二
我知道这个问题,其中概述了一个非常相似的问题,但我是 运行 ubuntu 上的开发服务器,而不是 mac。
更新:
通过降级到 django 2.1 暂时解决了这个问题。已打开工单 here
尝试创建这样的 URL。
urls.py
from views import *
urlpatterns = [
url(r'^forgotten-password/$', ForgottenPassword.as_view(), name='forgotten_password')
]
views.py
class ForgottenPassword(CreateView):
template_name = 'forgotten-password.html'
def get(self, request, *args, **kwargs):
return render(request, self.template_name,{})
看起来这已在 django 2.2.1 中修复,来自 release notes:
Fixed a regression in Django 2.2 that caused a crash of runserver when URLConf modules raised exceptions (#30323).
我是 运行 本地主机上的开发服务器,用于测试 Django 应用程序。大约一周前,开发服务器开始因错误退出——这并不理想。
举个例子,假设我想创建一个新视图,制作我的模板,然后在 urls 中添加以下内容:
urlpatterns = [
...
path('forgotten-password', ForgottenPassword.as_view(), name='forgotten_password'),
]
我还没有创建基于 ForgottenPassword class 的视图,所以服务器正确地抛出错误:
File "/code/accounts/urls.py", line 19, in <module>
path('forgotten-password', ForgottenPassword.as_view(), name='forgotten_password'),
NameError: name 'ForgottenPassword' is not defined
服务器随后退出。这不是期望的行为。我希望服务器保持错误状态,直到我修复错误(这发生在大约一周前)。
发生这种情况的原因是什么,我如何确保开发服务器在发生错误时保持运行状态以避免必须重新启动整个应用程序?
注意。 我们大约在同一时间从 django 2.1 升级到 2.2,这是 2.2 中的期望行为吗?
注意。二 我知道这个问题,其中概述了一个非常相似的问题,但我是 运行 ubuntu 上的开发服务器,而不是 mac。
更新: 通过降级到 django 2.1 暂时解决了这个问题。已打开工单 here
尝试创建这样的 URL。
urls.py
from views import *
urlpatterns = [
url(r'^forgotten-password/$', ForgottenPassword.as_view(), name='forgotten_password')
]
views.py
class ForgottenPassword(CreateView):
template_name = 'forgotten-password.html'
def get(self, request, *args, **kwargs):
return render(request, self.template_name,{})
看起来这已在 django 2.2.1 中修复,来自 release notes:
Fixed a regression in Django 2.2 that caused a crash of runserver when URLConf modules raised exceptions (#30323).