Django學習筆記(二):使用Template讓HTML、CSS參與網頁建立
通過本文章實現:
- 了解Django中Template的使用
- 讓HTML、CSS等參與網頁建立
- 利用靜態文件應用網頁樣式
一、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中的樣式,使文字可以居中顯示,文字顏色變為灰色。
