对django的urls.py的更改未在线反映

时间:2017-10-13 12:52:20

标签: python django nginx uwsgi

我正在使用NGINX和UWSGI运行Django应用程序。

我的网址模板曾经是这样的:

urlpatterns = [
    url(r'^$', views.index),
    url(r'^binaryQuestionApp/',include('binaryQuestionApp.urls')),
    url(r'^pointlocations/',include('pointlocations.urls')),
    url(r'^attributesFromPointsApp/',include('attributesFromPointsApp.urls')),
    url(r'^admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

然而,我希望将其改为:

urlpatterns = [
    url(r'^$', views.index),
    url(r'^collections/',views.collections),                  ## new line ##
    url(r'^binaryQuestionApp/',include('binaryQuestionApp.urls')),
    url(r'^pointlocations/',include('pointlocations.urls')),
    url(r'^attributesFromPointsApp/',include('attributesFromPointsApp.urls')),
    url(r'^admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

然而,在将其推送到我的服务器之后(并且.py文件在服务器上发生了变化)我一直得到Django的404页面:

Using the URLconf defined in data_collection_project.urls, Django tried these URL patterns, in this order:
^$
^binaryQuestionApp/
^pointlocations/
^attributesFromPointsApp/
^admin/
^media\/(?P<path>.*)$
The current URL, randomurltoget404page, didn't match any of these.

如果我改变别的东西,为了测试,我可以让改变工作。例如,我可以更改url(r'^$', views.index),最终指向的.html文件,这是我网站上的更新。

如何让Django更新URLpatterns?相关问题告诉我重启uwsgi或nginx,我尝试使用sudo service uwsgi restart无效。

1 个答案:

答案 0 :(得分:5)

正如您在问题中正确提到的,您需要在更改代码后重新加载/重新启动uWSGI服务。

如果这不起作用,则服务正在加载缓存数据,并且不会重新加载您的更改。要清除缓存的数据,请删除所有或相应的*.pyc文件,然后重新启动该服务。

在您的情况下,请删除urls.pyc,然后使用sudo service uwsgi restart

重新启动