我希望通过网址({1}}查询(相当简单)进行模拟。
例如,在博客引擎中,您希望SELECT
引用具有/tag/sometag/
标记的帖子。此外,sometag
应该是有效的网址,旁边是其他更复杂的网址。所以,(理论上)对url的大小没有限制,我建议这应该以递归方式完成,但是如何在Django URL Routing模型中处理呢?
答案 0 :(得分:1)
我会为所有这些网址使用通用的网址格式。
url(r'^query/([\w/]*)/$', 'app.views.view_with_query'),
您将收到所有“tag / sometag /或/ tag / other / and / year / 2013”作为视图的参数。
然后,您可以解析参数并提取信息(标记,值,标记,值,年份,值)以进行查询。
答案 1 :(得分:1)
django.conf.urls.url
在 3.1 及更高版本中已弃用。下面是django中递归url路由的解决方案:
urls.py
from django.urls import path, re_path
from .views import index
urlpatterns = [
re_path(r'^query/([\w/]*)/$', index, name='index'),
]
<块引用>
views.py
from django.shortcuts import render, HttpResponse
# Create your views here.
def index(request, *args, **kwargs):
print('-----')
print(args)
print(kwargs)
return HttpResponse('<h1>hello world</h1>')
如果我调用 python manage.py run server
,然后转到“http://127.0.0.1:8000/query/nice/”,我可以在终端中看到这些:
-----
('nice',)
{}