Django-----模板嵌套
阿新 • • 發佈:2018-02-01
數量 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-----模板嵌套