Django 模板,配置文件,靜態資源

模板 Template

思考 : 網站如何向客戶端返回一個漂亮的頁面呢?

提示 :

漂亮的頁面需要html、css、js.
可以把這一堆字段串全都寫到視圖中, 作爲HttpResponse()的參數,響應給客戶端.

問題 :

視圖部分代碼臃腫, 耦合度高.
這樣定義的字符串是不會出任何效果和錯誤的.
效果無法及時查看.有錯也不容易及時發現.

設想 :

是否可以有一個專門定義前端頁面的地方, 效果可以及時展示,錯誤可以及時發現,並且可以降低模塊間耦合度!

解決問題 :模板

MVT設計模式中的T,Template

在Django中, 將前端的內容定義在模板中, 然後再把模板交給視圖調用, 各種漂亮、炫酷的效果就出現了.

模板使用步驟

  1. 創建模板

  2. 設置模板查找路徑

  3. 模板接收視圖傳入的數據

  4. 模板處理數據

1.創建模板

  • 在應用同級目錄下創建模板文件夾templates. 文件夾名稱固定寫法.

  • 在templates文件夾下, 創建應用同名文件夾. 例, Book

  • 在應用同名文件夾下創建網頁模板文件. 例 :index.html

在這裏插入圖片描述

2.設置模板查找路徑

在這裏插入圖片描述

3.模板接收視圖傳入的數據

  • 視圖模板加載

    在這裏插入圖片描述

4.模板處理數據

在這裏插入圖片描述

  1. 查看模板處理數據成果

在這裏插入圖片描述

總結View-Templates流程

在這裏插入圖片描述




配置文件 settings.py

1. BASE_DIR

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

當前工程的根目錄,Django會依此來定位工程內的相關文件,我們也可以使用該參數來構造文件路徑。

2. DEBUG 調試模式,創建工程後初始值爲True,即默認工作在調試模式下。

作用:

  • 修改代碼文件,程序自動重啓

  • Django程序出現異常時,向前端顯示詳細的錯誤追蹤信息,例如

    在這裏插入圖片描述

  • 而非調試模式下,僅返回Server Error (500)

注意:部署線上運行的Django不要運行在調式模式下,記得修改DEBUG=False和ALLOW_HOSTS。

3. 本地語言與時區

Django支持本地化處理,即顯示語言與時區支持本地化。

本地化是將顯示的語言、時間等使用本地的習慣,這裏的本地化就是進行中國化,中國大陸地區使用簡體中文,時區使用亞洲/上海時區,注意這裏不使用北京時區表示。

初始化的工程默認語言和時區爲英語和UTC標準時區

# settings.py

LANGUAGE_CODE = 'en-us'  # 語言
TIME_ZONE = 'UTC'  # 時區# 時區

將語言和時區修改爲中國大陸信息

LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'

靜態文件

項目中的CSS、圖片、js都是靜態文件。一般會將靜態文件放到一個單獨的目錄中,以方便管理。在html頁面中調用時,也需要指定靜態文件的路徑,Django中提供了一種解析的方式配置靜態文件路徑。靜態文件可以放在項目根目錄下,也可以放在應用的目錄下,由於有些靜態文件在項目中是通用的,所以推薦放在項目的根目錄下,方便管理。

爲了提供靜態文件,需要配置兩個參數:

  • STATICFILES_DIRS存放查找靜態文件的目錄

  • STATIC_URL訪問靜態文件的URL前綴

示例

1) 在項目根目錄下創建static目錄來保存靜態文件。

2) 在bookmanager/settings.py中修改靜態文件的兩個參數爲

# settings.py

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

3)此時在static添加的任何靜態文件都可以使用網址 /static/文件在static 中的路徑來訪問了。

例如,我們向static目錄中添加一個index.html文件,在瀏覽器中就可以使用 127.0.0.1:8000/static/index.html來訪問。

或者我們在static目錄中添加了一個子目錄和文件book/detail.html,在瀏覽器中就可以使用127.0.0.1:8000/static/book/detail.html來訪問。


App應用配置

在每個應用目錄中都包含了apps.py文件,用於保存該應用的相關信息。

在創建應用時,Django會向apps.py文件中寫入一個該應用的配置類,如

from django.apps import AppConfig

class BookConfig(AppConfig):
    name = 'book'

我們將此類添加到工程 settings.py 中的 INSTALLED_APPS 列表中,表明註冊安裝具備此配置屬性的應用。

  • AppConfig.name屬性表示這個配置類是加載到哪個應用的,每個配置類必須包含此屬性,默認自動生成。

  • AppConfig.verbose_name屬性用於設置該應用的直觀可讀的名字,此名字在Django提供的Admin管理站點中會顯示,如

    # admin.py
    from django.apps import AppConfig
    
    class UsersConfig(AppConfig):
        name = 'book'
        verbose_name = '圖書管理'
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章