1. 程式人生 > >Django-----模板嵌套

Django-----模板嵌套

數量 ret resp cts 找不到 取出 body pan 還需

一、模板的嵌套是指,我們可以將Html中相同結構的部分提取出來,放在一個文件裏然後進行引用,中間需要填充的部分我們使用{%block %} +內容+{%endblock%}來代替,在需要使用地方我們使用{%extends ‘base.html‘%}來引用。

1.相同的結構部分我們可以將他提取出來。(base.html)

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>{%block title%}{% endblock %}</title>
</head> <body> <a href = "{%url ‘home‘%}"><div><h2>個人博客網站</h2></div></a> {%block content%}{% endblock %} </body> </html>

2.文件的使用:需要使用的地方我們將它加進去。最標題使用extends引用一下!

{% extends ‘base.html‘%}
{#標題#}
    {% block title %}
        {{typename.typenames}}
    {% endblock %}
{#內容#}
    {% block content %}
        {#別名需要用引號#}
        
<div><h2>{{typename.typenames}}</h2></div> {%for arcile in blogs%} <a href = "{%url ‘blogdetail‘ arcile.pk%}"> <h3>{{arcile.title}}</h3> </a> <p>{{arcile.content|truncatechars:10}}</p> {%empty%} --暫無博客-- {%endfor%}
<p>一共有{{blogs|length}}博客</p>{#顯示文章博客數量#} {% endblock %}

二、公共全局模板文件的設置。

django默認的模板文件是放在app裏面的,但是有些文件我們可能是全局方向上使用的,因此,我們需要建立一個全局方向上的文件夾。

技術分享圖片

1.建立文件夾後我們把公共部分的模板文件存放在全局文件夾下。然後在setting裏面指定一下目錄。

技術分享圖片

BASE_DIR:是基礎的文件路徑,可以理解為到根目錄,用join方法拼接,全局文件夾。

2.app項目裏還存在著其他的一些文件,那麽可不可以放在全局文件夾下呢?是可以的。只是我們還需要設置一下view下的文件,不然djano找不到.

def blogdetail(request,aricle_id):
    contenx = {}
    contenx[detail] = get_object_or_404(Blog,pk = aricle_id)
    return render_to_response(blog/detail.html,contenx)
def bloglist(request):
    contenx = {}
    contenx[list] = Blog.objects.all()#獲取所有的文章
    # contenx[‘count‘] = Blog.objects.all().count()
    return render_to_response(blog/list.html,contenx)

建議:模板文件存放:

如果是這個文件跟著整個項目走的話,最好將文件放在全局的文件夾下,如果是需要做一個單獨的app封裝的話放在app下

Django-----模板嵌套