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 %}

這個網誌中的熱門文章

16天記下7000單字

2023 最新入門零基礎 Kotlin教學【從零開始學 Kotlin 程式設計】Kotlin 教學課程目錄 (Android Kotlin, IntelliJ IDEA, Android Studio, Android APP 開發教學)

2022 最新入門零基礎 Flutter教學 【Flutter 程式設計入門實戰 30 天】Flutter 教學課程目錄 (IntelliJ IDEA 開發教學)

nano 文字編輯器

【從零開始學 Flutter 程式設計】SharedPreferences 設定檔資料存取