有没有办法根据网址呈现HTML和内容不同,以便我不必手动为每个添加视图?
也许我解释得不好,我会告诉你代码:
url(r"^tag/<tag>/$", views.tag, name="tag"),
当我输入domain.com/tag/mytag时,它会使用标记呈现HTML和<h1>
。
那么我在视图中如何获取用户输入的标签以在HTML模板中显示它们?
我的views.py:
def tag(request):
return render(request, "tag/tag.html")
答案 0 :(得分:3)
您需要稍微更改网址。
url(r"^tag/(?P<tag>[\w-]+)/$", views.tag, name="tag"),
然后将标记添加到视图中的kwargs,并将标记传递给模板上下文。
def tag(request, tag):
return render(request, "tag/tag.html", {'tag': tag})
请注意,标记只是网址中的文字。
这是一个非常基本的问题,您可能会发现完成涵盖Django这些部分的教程非常有用。
答案 1 :(得分:0)
您可以使用(?P)捕获括号内的文本,并将其作为参数自动传递给视图。
url(r"^tag/(?P.*)/$", views.tag, name="tag"),
def tag(request, tag):
return render(request, "tag/tag.html")