django模板加載靜態(tài)文件的方法步驟
加載靜態(tài)文件
在一個網(wǎng)頁中,不僅僅只有一個 html 骨架,還需要 css 樣式文件, js 執(zhí)行文件以及一些圖片等。因此在 DTL 中加載靜態(tài)文件是一個必須要解決的問題。在 DTL 中,使用 static 標(biāo)簽來加載靜態(tài)文件。要使用 static 標(biāo)簽,首先需要 {% load static %} 。加載靜態(tài)文件的步驟如下:
首先確保 django.contrib.staticfiles 已經(jīng)添加到 settings.INSTALLED_APPS 中。
確保在 settings.py 中設(shè)置了 STATIC_URL 。
在已經(jīng)安裝了的 app 下創(chuàng)建一個文件夾叫做 static ,然后再在這個 static 文件夾下創(chuàng)建一個當(dāng)前 app 的名字的文件夾,再把靜態(tài)文件放到這個文件夾下。例如你的 app 叫做 book ,有一個靜態(tài)文件叫做 zhiliao.jpg ,那么路徑為 book/static/book/zhiliao.jpg 。(為什么在 app 下創(chuàng)建一個 static 文件夾,還需要在這個 static 下創(chuàng)建一個同 app 名字的文件夾呢?原因是如果直接把靜態(tài)文件放在 static 文件夾下,那么在模版加載靜態(tài)文件的時候就是使用 zhiliao.jpg ,如果在多個 app 之間有同名的靜態(tài)文件,這時候可能就會產(chǎn)生混淆。而在 static 文件夾下加了一個同名 app 文件夾,在模版中加載的時候就是使用 app/zhiliao.jpg ,這樣就可以避免產(chǎn)生混淆。)
如果有一些靜態(tài)文件是不和任何 app 掛鉤的。那么可以在 settings.py 中添加 STATICFILES_DIRS ,以后 DTL 就會在這個列表的路徑中查找靜態(tài)文件。比如可以設(shè)置為:
STATICFILES_DIRS = [ os.path.join(BASE_DIR,"static") ]
在模版中使用 load 標(biāo)簽加載 static 標(biāo)簽。比如要加載在項(xiàng)目的 static 文件夾下的 style.css 的文件。那么示例代碼如下:
{% load static %}
<link rel="stylesheet" href="{% static 'style.css' %}" rel="external nofollow" >
如果不想每次在模版中加載靜態(tài)文件都使用 load 加載 static 標(biāo)簽,那么可以在 settings.py 中的 TEMPLATES/OPTIONS 添加 'builtins':['django.templatetags.static'] ,這樣以后在模版中就可以直接使用 static 標(biāo)簽,而不用手動的 load 了。
如果沒有在 settings.INSTALLED_APPS 中添加 django.contrib.staticfiles 。那么我們就需要手動的將請求靜態(tài)文件的 url 與靜態(tài)文件的路徑進(jìn)行映射了。示例代碼如下:
from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # 其他的url映射 ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
強(qiáng)烈推薦好用的python庫合集(全面總結(jié))
這篇文章主要為大家介紹了強(qiáng)烈推薦非常好用的python庫合集(全面總結(jié)),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
Python Queue模塊詳細(xì)介紹及實(shí)例
這篇文章主要介紹了Python Queue模塊詳細(xì)介紹及實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-12-12
Python使用matplotlib的pie函數(shù)繪制餅狀圖功能示例
這篇文章主要介紹了Python使用matplotlib的pie函數(shù)繪制餅狀圖功能,結(jié)合實(shí)例形式分析了Python使用matplotlib的pie函數(shù)進(jìn)行餅狀圖繪制的具體操作技巧,注釋中對pie函數(shù)的用法進(jìn)行了詳細(xì)的說明,便于理解,需要的朋友可以參考下2018-01-01
Python3.7在anaconda里面使用IDLE編譯器的步驟詳解
這篇文章主要介紹了Python3.7在anaconda里面使用IDLE編譯器的步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-04-04
python web框架Flask實(shí)現(xiàn)圖形驗(yàn)證碼及驗(yàn)證碼的動態(tài)刷新實(shí)例
在本篇文章里小編給大家整理的是關(guān)于python web框架Flask實(shí)現(xiàn)圖形驗(yàn)證碼的相關(guān)知識點(diǎn),有需要的朋友們參考下。2019-10-10
python多版本工具miniconda的配置優(yōu)化實(shí)現(xiàn)
通過Miniconda,您可以輕松地創(chuàng)建和管理多個Python環(huán)境,同時確保每個環(huán)境具有所需的依賴項(xiàng)和軟件包,本文主要介紹了python多版本工具miniconda的配置優(yōu)化實(shí)現(xiàn),感興趣的可以了解一下2024-01-01
pycharm打包py項(xiàng)目為.exe可執(zhí)行文件的兩種方式
本文主要介紹了pycharm打包py項(xiàng)目為.exe可執(zhí)行文件的兩種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
python實(shí)現(xiàn)提取str字符串/json中多級目錄下的某個值
今天小編就為大家分享一篇python實(shí)現(xiàn)提取str字符串/json中多級目錄下的某個值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02

