Python筆記(五) Django中使用模板

2022-07-15 09:39:09 字數 3503 閱讀 4268

使用django開發**時,如果不使用模板,那麼將會很不合理。因為我們所有的html**都需要被硬編碼到我們的python**中。我們新建乙個工程,然後再在新建乙個應用程式,並在其中的views.py檔案中新增如下**:

datedelta()中引數必須是整型

從上面的**中就可以看出,我們的html**和我們的python混合在一起了,這樣不僅影響開發速度,也不便於後期維護。下面我會詳細介紹django中的模板。模板的作用是要實現將html**和python**分開。首先在我們應用程式下面新建乙個templates資料夾,之後我們的所有模板都會放在這個資料夾下面,因為django1.6的setting.py檔案中沒有template_dirs這個選項,取而代之的是它會預設去尋找template資料夾下面的模板。我們在這個資料夾下面新建乙個html。這個html檔案中主要是放一些我們頁面不會變化或者很少變化的**,而那些經常變化的**我們使用進行申明,然後在子頁面中可以對這部分**進行覆蓋。base.html**如下:

1

doctype html

>

2<

html

>

3<

head

>

4<

meta

charset

="utf-8"

>

5<

title

>

title

>

6head

>

7<

body

>

8<

h1>my helpful timestamp site

h1>910

11<

hr>

12<

p>thanks for visiting my site

p>

1314

body

>

15html

>

上面**中,我們使用模板標籤將html的title,content,以及footer進行了佔位。然後再新建乙個current_datetime.html的頁面繼承我們的base.html頁面,然後對其中的title,content部分進行覆蓋,footer部分保留父頁面base.html中的**。**如下:

1     

23 the current time

45

6<

p>it is now }.

p>

7

這樣使用之後,我們訪問current_datetime.html頁面的時候整體框架是base.html中所定義的,而區域性效果回事我們current_datetime.html中所定義的。對於乙個**而言,我們可以定義盡可能多的,這樣我們子頁面繼承的時候會有較好的擴充套件性。下面是檢視views.py中所定義的函式**:

',)上面的函式返回當前的時間,注釋部分和沒注釋的**效果是一樣的。值得注意的是使用render_to_response函式時,其第乙個引數必須是要使用模板的名稱。第二個引數是可選的,如果你要給定這個引數,那麼這個引數必須是為該模板建立context時所使用的字典。如果不給定,函式將使用乙個空字典。下面是應用程式中urls.py的**:

1

from django.conf.urls import

patterns, url

2from second import

views

34 urlpatterns = patterns(''

,5 url(r'

^time/

', views.current_time),

6 )

urls.py是將我們檢視views.py中的**和我們之後訪問頁面在位址列中所輸入的位址進行繫結。url()中的第乙個引數是乙個正規表示式,第二個引數是我們要繫結的函式**。配置好我們應用程式的urls.py之後,我們還需要在我們專案的urls.py中進行配置,具體如下:

然後我們啟動服務,並訪問localhost:8000/second/time,可以看到下面的效果。

Django筆記五 模板Templates

常用標籤 1,for for內部允許使用for提供的內建變數 forloop 1,forloop.counter return int 記錄當前迴圈的次數,從1開始 2,forloop.first 返回值為布林型別 是否是第一次迴圈 第一項 3,forloop.last 返回值為布林型別 是否是最後...

Django學習筆記五(URL排程器)

1。django處理請求 django依次匹配每個url模式,在與請求的url匹配的第乙個模式停下來,如 from django.urls import path form import views urlpatterns path articles 2003 views.special case ...

Django第五次學習筆記

管理器 bookinfo.objects.all objects是乙個什麼東西?objects是django幫我們自動生成的管理器物件,通過這個管理器可以實現對資料的查詢 objects是models.manger類的乙個物件。自定義管理器之後django不再幫我們生產預設的objects管理器。1...