Django 系列部落格(九)

2022-07-03 13:06:12 字數 2144 閱讀 4893

本篇部落格介紹 django 模板的匯入與繼承以及匯入匯入靜態檔案的幾種方式。

語法:``

如下:

圖書管理系統

}

django 模板引擎中最強大的也是最複雜的除了 orm 就是模板繼承了。模板繼承可以讓您建立乙個基本的『』骨架『』模板,它包含您站點的全部元素,並且可以定義可以被子模板覆蓋的 blocks。

通過下面的例子,可以容易的理解模板繼承:

這個模版,我們把它叫作base.html, 它定義了乙個可以用於兩列排版頁面的簡單html骨架。「子模版」的工作是用它們的內容填充空的blocks。

在這個例子中,block標籤定義了三個可以被子模版內容填充的block。block告訴模版引擎: 子模版可能會覆蓋掉模版中的這些位置。

子模版可能看起來是這樣的:

my amazing blog }

extends標籤是這裡的關鍵。它告訴模版引擎,這個模版「繼承」了另乙個模版。當模版系統處理這個模版時,首先,它將定位父模版——在此例中,就是「base.html」。

那時,模版引擎將注意到base.html中的三個block標籤,並用子模版中的內容來替換這些block。根據blog_entries的值,輸出可能看起來是這樣的:

this is my first entry.

this is my second entry.

請注意,子模版並沒有定義sidebarblock,所以系統使用了父模版中的值。父模版的標籤中的內容總是被用作備選內容(fallback)。

這種方式使**得到最大程度的復用,並且使得新增內容到共享的內容區域更加簡單,例如,部分範圍內的導航。

注意:

​ 在大型模板中,這個方法可以讓你清楚地看到哪個標籤被關閉了。

static_url = '/static/'

staticfiles_dirs = [

os.path.join(base_dir, 'static')

]

from django.template import library

register = library()

# @register.inclusion_tag('inclusion.html')

# def myinclusion():

# pass

@register.inclusion_tag('book_inclusion.html')

def book_inclusion(bookinfo):

print('...', bookinfo)

# print(bookinfo[0])

# for info in bookinfo:

## a = infos.values()

# print(a.length)

li =

for foo in bookinfo:

return

id

name

price

pub_date

author

pubedit

delete

}}}}}

}edit

delete

新增

Django 系列部落格(七)

本篇部落格介紹 django 中的檢視層中的相關引數,httprequest 物件 httpresponse 物件 jsonresponse,以及檢視層的兩種響應方式 cbv 和 fbv,還有簡單的檔案上傳。乙個檢視函式,簡稱檢視,是乙個簡單的python 函式,它接受web請求並且返回web響應。...

Django 系列部落格(四)

本篇部落格介紹 django 如何和資料庫進行互動並且通過 model 進行資料的增刪查改 比如在大名鼎鼎的 pythonweb 框架 django 就是使用了物件關係對映,這個對應 django 中的 model檔案。from django.db import models create your...

Django搭建簡易部落格

django簡易部落格,主要實現了以下功能 連線資料庫 建立超級使用者與後台管理 利用django admin bootstrap美化介面 template,view與動態url markdown與 高亮 歸檔,aboutme和標籤分類 搜尋與readmore rss與分頁 需要新增的安裝包 要注意...