前言
當我們打開一個網站的時候,在打開不同的頁面時候,會發現每個頁面的頂部、底部內容都差不多,這樣就可以把這些公共的部分,單獨抽出來。 類似於python裏面的函數,把公共部分寫成函數,然後調用就行了,這樣就能實現代碼的複用。django裏面也有類似的功能,用include可以實現。
《玩轉Django2.0》是最近出版的,語法比較新,基礎部分很詳細,初學者值得入手!
公共內容
如下圖所示,網站的每個頁面都有頂部導航,body正文,底部導航這三塊內容
base.html內容
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <section> <h1>頂部導航</h1> <p>python自動化-上海-悠悠</p> <hr> </section> <section> <h1>body正文</h1> <p>正文內容</p> </section> <section> <br><br><br><br><hr> <h1>底部導航</h1> <p>底部一些友情鏈接啊,網站導航,版權啊</p> </section> </body> </html>
一般頭部和底部是不變的,變的只是body裏面內容,這樣把頭部和底部單獨抽出來
top.html單獨拿出來
<section> <h1>頂部導航</h1> <p>python自動化-上海-悠悠</p> <hr> </section>
end.html單獨拿出來
<section> <br><br><br><br><hr> <h1>底部導航</h1> <p>底部一些友情鏈接啊,網站導航,版權啊</p> </section>
include語法
hello/views.py視圖函數
from django.shortcuts import render # Create your views here. def page1(request): return render(request, 'page1.html')
urls.py添加訪問路徑
from django.conf.urls import url from django.urls import re_path, path from hello import views urlpatterns = [ path("page1/", views.page1), ]
瀏覽器訪問地址http://127.0.0.1:8000/page1/
就能看的效果了
帶參數
公共部分top.html和end.html裏面也可以傳變量,如
<section> <h1>頂部導航</h1> <p>python自動化-{{name}}</p> <hr> </section>
對應視圖函數
def page1(request): context = {"name": "yoyo"} return render(request, 'page1.html', context)