博客五部曲之一 - 简单博客


1471 浏览 5 years, 11 months

15 模板上下文

版权声明: 转载请注明出处 http://www.codingsoho.com/

我们希望能够灵活的渲染模板内容,可以通过context传递相关信息到页面。Context是一个字典变量。

如果我们修改下面两个函数,在context里设置title

def post_detail(request):
    # return HttpResponse("<h1>Detail</h1>")
    context = {
        "title" : "detail"
    }
    return render(request, "index.html",context)   

def post_list(request):
    # return HttpResponse("<h1>List</h1>")     
    context = {
        "title" : "list"
    }
    return render(request, "index.html",context)   

同时,在模板里使用{{title}}来渲染内容。

<body>
    <h1>{{title}} is working!</h1>
</body>

对应显示的内容就会是 detail is working和list is working,我们可以通过修改参数内容,灵活的显示页面,例如可以根据用户是否授权显示不同的内容。

def post_list(request):
    if request.user.is_authenticated()  :
        context = {
            "title" : "my user list"
        }
    else:
        context = {
            "title" : "list"
        }

    return render(request, "index.html",context)