这似乎是我对django中url配置如何工作的误解。我认为匹配的第一个正则表达式是“调度”的地方,但是如果我在网址列表中有其他人,则会转到他们而不是第一个。
管理网站可访问时项目urls.py
的内容:
from django.conf.urls import include, url
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
url(r'^admin/', admin.site.urls),
#url(r'^api/', include('api.urls')),
#url(r'^index', include('limbo.urls')),
#url(r'^polls/', include('polls.urls')),
# url(r'^limbo/', include('limbo.urls')),
#url(r'edit/', include('limbo.urls')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
但是当我取消评论第1,第2或最后一条评论输出行时,我收到错误:
invalid literal for int() with base 10: ''
有什么想法吗?
例如,如果我取消评论url(r'^api/', include('api.urls')),
的行,我会收到我说的错误
api/urls.py
内容:
from django.conf import settings
from django.conf.urls import url
from django.conf.urls.static import static
from . import views
urlpatterns = [
url(r'^(?:addUse\.?[html]{,4})?$', views.addUsageHistory, name='addUsageHistory'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
和
在回溯中,我可以看到它似乎源于此文件:
/home/ec2-user/limbo/limboenv/local/lib/python2.7/site-packages/django/contrib/admin/templates/admin/login.html
并且在堆栈跟踪中向下(从底部开始),我可以看到/home/ec2-user/limbo/limboenv/local/lib/python2.7/site-packages/django/utils/regex_helper.py
中的变量pattern
设置为'(?:addUse\\.?[html]{,4})?$
,这是api/urls.py
中的一个值}。为什么它最终会在api / urls.py中结束?它应该在看到r'^api/'
答案 0 :(得分:0)
?:
中使用正则表达式开头使用urls.py
是非常危险的。我改变了我的应用程序urls.py没有它,这一切都按预期工作。在这里看到我的udpated api/urls.py
:
from django.conf import settings
from django.conf.urls import url
from django.conf.urls.static import static
from . import views
urlpatterns = [
url(r'^addUse.html$', views.addUsageHistory, name='addUsageHistory'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)