1. 程式人生 > >Django學習筆記(二):使用Template讓HTML、CSS參與網頁建立

Django學習筆記(二):使用Template讓HTML、CSS參與網頁建立

Django學習筆記(二):使用Template讓HTML、CSS參與網頁建立

通過本文章實現:

  1. 瞭解Django中Template的使用
  2. 讓HTML、CSS等參與網頁建立
  3. 利用靜態檔案應用網頁樣式

    一、Template的使用

    Template是Django利用渲染器將模板檔案與資料內容結合,完成網頁整合的方式。

    1、Template的建立

    在專案資料夾(manage.py所在路徑)內,建立templates資料夾。
    在setting.py中配置TEMPLATES的DIR。將setting.py檔案中TEMPLATES部分修改如下:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

主要是在'DIRS': [os.path.join(BASE_DIR, 'templates')]中配置。

2、編寫HTML模板檔案

在templates資料夾中編寫drugs_index.html檔案,內容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>藥品搜尋</title>
</head>
<body>
<h1>{{html_time}}</h1>
</body>
</html>

檔案與一般HTML一致,{{show_time}}部分表示show_time用於後續與Django進行資料通訊。
點選檢視HTML教程

3、Django與HTML之間的資料通訊

在APP下的views.py中先引入get_template模組。

from django.shortcuts import render
from django.http import HttpResponse
import datetime
from django.template.loader import get_template


# Create your views here.
def index(request):
    # 確定引入的模板檔案
    template = get_template('drugs_index.html')
    # 定義顯示的內容
    time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    views_time = '今天是:' + time
    # 將views_time通訊到HTML中的html_time
    html = template.render({'html_time':views_time})
    return HttpResponse(html)

cmd中執行python manage.py runserver 0.0.0.0:8000,開啟網頁可看到資料通訊成功。

4、CSS靜態檔案引入改善頁面顯示效果

除了在HTML中使用傳統的引入方式使用CSS檔案外,在Django中,CSS、JS和圖片檔案可以看作是靜態檔案,有專門的配置方式。
本筆記使用bootstrap.min.css的本地檔案的方式進行演示。點選檢視CSS教程

在templates資料夾中建立static子資料夾,在static資料夾內再建立css子資料夾。將bootstrap.min.css檔案複製到css子資料夾內。
在settings.py中找到STATIC_URL = '/static/',並增加內容如下:

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/
STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'templates/static'),
]

應用CSS與普通情況一樣,直接在HTML中編輯。將drugs_index.html檔案修改如下:

<!DOCTYPE html>
<!-- 載入靜態檔案 -->
{% load staticfiles %}
<html lang="en">
<head>
    <!-- 以連結方式引用static資料夾中的css檔案 -->
    <link rel="stylesheet" href="{% static 'bootstrap.min.css' %}">
    <meta charset="UTF-8">
    <title>藥品搜尋</title>
</head>
<body>
<!-- 應用css檔案中的樣式 -->
<p class="text-center muted">{{html_time}}</p>
</body>
</html>

執行後檢視網頁,可看到使用了css中的樣式,使文字可以居中顯示,文字顏色變為灰色。