python - Django 将所有未捕获的 url 路由到包含的 urls.py

标签 python django url-routing

我希望每个不以“api”开头的 url 都使用 foo/urls.py

网址.py

from django.conf.urls import include, url
from foo import urls as foo_urls

urlpatterns = [
url(r'^api/', include('api.urls', namespace='api')),
url(r'^.*/$', include(foo_urls)),
]    

foo/urls.py

from django.conf.urls import include, url
from foo import views

urlpatterns = [
url(r'a$', views.a),
]    

这行不通,知道吗?

最佳答案

如果你想要捕获所有 url 模式,请使用:

url(r'^', include(foo_urls)),

来自 the docs :

Whenever Django encounters include() it chops off whatever part of the URL matched up to that point and sends the remaining string to the included URLconf for further processing.

在您当前的代码中,正则表达式 ^.*/$ 匹配整个 url /a/。这意味着没有任何东西可以传递给 foo_urls

关于python - Django 将所有未捕获的 url 路由到包含的 urls.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31248126/

相关文章:

python - 如何在 plotly scattergeo 美国 map 中使用离散色标

python - 没有得到 LD_LIBRARY_PATH

python - 如何防止 LXML 错误 'failed to load external entity'

javascript - Google map 未以 html 形式显示

python - 如何在 Pootle 中按总体完成情况显示排序列表

django - 将数据从模板传递到 Django 中的 View

javascript - 如何在 Backbone 路由器之间共享 url?

python - 如何在 Python 中从语料库创建词云?

php - 关于重构自定义路由场景的建议(Lithium Framework)

asp.net - URL 中的 MapPageRoute 附加参数