1. 程式人生 > 實用技巧 >python測試開發django(6)--模板中include使用

python測試開發django(6)--模板中include使用

前言

當我們開啟一個網站的時候,在開啟不同的頁面時候,會發現每個頁面的頂部、底部內容都差不多,這樣就可以把這些公共的部分,單獨抽出來。

類似於python裡面的函式,把公共部分寫成函式,然後呼叫就行了,這樣就能實現程式碼的複用。django裡面也有類似的功能,用include可以實現。

公共內容

如下圖所示,網站的每個頁面都有頂部導航,body正文,底部導航這三塊內容

一般頭部和底部是不變的,變的只是body裡面內容,這樣把頭部和底部單獨抽出來

xjyn/templates/top1.html單獨拿出來

<section>
    <h1>頂部導航</h1>
    <p>python自動化-武漢-會</p>
    <hr>
</section>

xjyn/templates/end1.html單獨拿出來 

<section>
    <br><br><br><br><hr>
    <h1>底部導航</h1>
    <p>底部一些友情連結啊,網站導航,版權啊</p>
</section>

 include語法

xjyn/templates/page1.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

{% include 'top1.html' %}
<section>
    <h1>body正文</h1>
    <p>正文內容</p>
</section>
{% include 'end1.html' %}

</body>
</html>

xjyn/views.py檢視函式

from django.shortcuts import render
from django.http import HttpResponse,Http404
# Create your views here.

def he(request):
    return render(request,"page1.html")

urls.py新增訪問路徑

#helloworld/helloworld/urls.py
from django.conf.urls import url
from django.urls import re_path,path
from xjyn import views

urlpatterns=[
    url('^home$',views.he),
]

瀏覽器訪問地址http://127.0.0.1:8000/home就能看到效果了

帶引數

公共部分top1.html和end1.html裡面也可以傳變數,如

<section>
    <h1>頂部導航</h1>
    <p>python自動化-{{name}}</p>
    <hr>
</section>

對應檢視函式

def he(request):
    p={"name":"小白"}
    return render(request,"page1.html",p)