如何从URL获取标记并使用模板标记显示它(Django)

时间:2016-03-05 20:05:35

标签: django

有没有办法根据网址呈现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")

2 个答案:

答案 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")