Django - 模板使用方式
創建一個 demotmpl 專案
django-admin startproject demotmpl
cd demotmpl
python manage.py startapp tmpl
自動產生的目錄結構
demotmpl/
├── tmpl
│ ├── __init__.py
│ ├── admin.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── manage.py
└── demotmpl
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
定義在此專案中新增了一個應用 APP
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'tmpl',
]
編輯 tmpl/views.py
from django.shortcuts import render
def home(request):
return render(request, 'home.html')
在 tmpl 目錄下新建一個 templates 文件夾,裡面新建一個 home.html
mkdir templates
nano home.html
目錄結構
demotmpl
├── tmpl
│ ├── __init__.py
│ ├── admin.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── templates
│ │ └── home.html
│ ├── tests.py
│ └── views.py
├── manage.py
└── demotmpl
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
編輯 home.html
<html>
<head>
<title>KT-Lollipop</title>
</head>
<body>
這裡是 KT-Lollipop 線上學習課程網站
<br>
歡迎來學習 Django
</body>
</html>
編輯 demotmpl/urls.py
from django.conf.urls import include, url
from django.contrib import admin
from tmpl import views as tmpl_views
urlpatterns = [
url(r'^$', tmpl_views.home, name='home'),
url(r'^admin/', admin.site.urls),
]
運行,看結果
python manage.py runserver
模板補充知識:
網站模板的設計,一般的,我們做網站有一些通用的部分,比如導航,底部,訪問統計代碼等等
nav.html, bottom.html, weba_nalytics.html
可以寫一個base.html 來包含這些通用文件(include)
{% block title %}標題{% endblock %} - KT Lollipop 線上學習課程網站
{% include 'nav.html' %}
{% block content %}
這裡是默認內容,所有繼承自這個模板的,如果不覆蓋就顯示這裡的默認內容。
{% endblock %}
{% include 'bottom.html' %}
如果需要,寫足夠多的block以便繼承的模板可以重寫該部分,include是包含其它文件的內容,就是把一些網頁共用的部分拿出來,重複利用,改動的時候也方便一些,還可以把廣告代碼放在一個單獨的html中,改動也方便一些,在用到的地方include進去。其它的頁面繼承自base.html就好了,繼承後的模板也可以在block塊中include其它的模板文件。
比如我們的首頁home.html,繼承或者說擴展(extends)原來的base.html,可以簡單這樣寫,重寫部分代碼(默認值的那一部分不用改)
{% extends 'base.html' %}
{% block title %}歡迎光臨首頁{% endblock %}
{% block content %}
{% include 'ad.html' %}
這裡是首頁,歡迎光臨
{% endblock %}