2016-03-05 81 views
1

有没有一种方法可以根据url呈现HTML和内容不同,这样我就不必手动添加视图给每个人了?如何从URL获取标签并使用模板标签显示它(Django)

也许我解释说这不好,我会告诉你,代码:

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

你可以分享你的'views.py'文件以及相应的HTML模板吗? – gtlambert

回答

3

你需要稍微改变你的网址。

url(r"^tag/(?P<tag>[\w-]+)/$", views.tag, name="tag"), 

然后为您的视图中的kwargs添加标签,并将标签传递给模板上下文。

def tag(request, tag): 
    return render(request, "tag/tag.html", {'tag': tag}) 

请注意,标签只是来自url的文本。

这是一个非常基本的问题,您可能会发现通过涵盖Django的这些部分的教程很有用。

+0

谢谢阿拉斯代尔。我会读更多关于这个! –

0

可以使用(P?)来捕获括号内的文字,并将其作为参数传递自动将您的看法。

url(r"^tag/(?P.*)/$", views.tag, name="tag"), 

    def tag(request, tag): 
     return render(request, "tag/tag.html")