欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

對(duì)Django中static(靜態(tài))文件詳解以及{% static %}標(biāo)簽的使用方法

 更新時(shí)間:2019年07月28日 10:23:08   作者:stu_xujin  
今天小編就為大家分享一篇對(duì)Django中static(靜態(tài))文件詳解以及{% static %}標(biāo)簽的使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

在一個(gè)網(wǎng)頁中,不僅僅只有一個(gè)html骨架,還需要css樣式文件,js執(zhí)行文件以及一些圖片等。因此在DTL中加載靜態(tài)文件是一個(gè)必須要解決的問題。在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。

注意: 上面兩條都是在創(chuàng)建Django 項(xiàng)目的時(shí)候就自動(dòng)給我們弄好了,只要我們沒有去改動(dòng)它,就不用管。

在已經(jīng)安裝了的app下創(chuàng)建一個(gè)文件夾叫做static,然后再在這個(gè)static文件夾下創(chuàng)建一個(gè)當(dāng)前app的名字的文件夾,再把靜態(tài)文件放到這個(gè)文件夾下。例如你的app叫做book,有一個(gè)靜態(tài)文件叫做book.jpg,那么路徑為book/static/book/book.jpg。(為什么在app下創(chuàng)建一個(gè)static文件夾,還需要在這個(gè)static下創(chuàng)建一個(gè)同app名字的文件夾呢?原因是如果直接把靜態(tài)文件放在static文件夾下,那么在模版加載靜態(tài)文件的時(shí)候就是使用book.jpg,如果在多個(gè)app之間有同名的靜態(tài)文件,這時(shí)候可能就會(huì)產(chǎn)生混淆。而在static文件夾下加了一個(gè)同名app文件夾,在模版中加載的時(shí)候就是使用app名/book.jpg,這樣就可以避免產(chǎn)生混淆。)

注意: 文件夾的名字必須為static 。

如果有一些靜態(tài)文件是不和任何app掛鉤的。即不再任何一個(gè)app的目錄下。那么可以在settings.py中添加STATICFILES_DIRS,以后DTL就會(huì)在這個(gè)列表的路徑中查找靜態(tài)文件。例如我們?cè)趍anage.py的同級(jí)目錄下新建一個(gè)static的文件夾。然后在settings.py:中添加STATICFILES_DIRS

STATICFILES_DIRS = [
 os.path.join(BASE_DIR,"static")
]

注: 第三種和第四種方法都可以加載靜態(tài)文件,我的個(gè)人習(xí)慣是在manage.py的同級(jí)目錄下新建一個(gè)static文件夾,然后將所有的靜態(tài)文件進(jìn)行分類的在里面存儲(chǔ)。而不去app中新建一個(gè)static的文件夾。但這只是我的個(gè)人習(xí)慣。畢竟不管是黑貓白貓,能抓到老鼠的就是好貓,所以只要我們能把項(xiàng)目做出來能運(yùn)行,并且代碼結(jié)構(gòu)有邏輯性、層次感就行了。

在模版中使用load標(biāo)簽加載static標(biāo)簽。比如要加載在項(xiàng)目的static文件夾下的style.css的文件。那么示例代碼如下:

{% load static %}

<link rel="stylesheet" href="{% static 'style.css' %}" rel="external nofollow" >

注意: {% load static %}需要放在html的頭部位置(至少在使用static標(biāo)簽的上面),一般都是放在html的最上面。如果{% extend %}標(biāo)簽和{% load static %}同時(shí)存在,{% extend %}需要放在最上面,然后再放{% load static %}等標(biāo)簽。

如果不想每次在模版中加載靜態(tài)文件都使用load加載static標(biāo)簽,那么可以在settings.py中的TEMPLATES/OPTIONS添加'builtins':['django.templatetags.static'],這樣以后在模版中就可以直接使用static標(biāo)簽,而不用手動(dòng)的load了。

注意: 位置不要添加錯(cuò)誤了

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',
      ],
      #添加在這個(gè)位置
      'builtins' : [
        'django.templatetags.static'
      ],
    },
  },
]

下面的不常用,但是可以了解一下。

如果沒有在settings.INSTALLED_APPS中添加django.contrib.staticfiles。那么我們就需要手動(dòng)的將請(qǐng)求靜態(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)

但平時(shí)我們并不會(huì)用到這個(gè),Django內(nèi)置已經(jīng)將django.contrib.staticfiles添加進(jìn)去了的,我們?yōu)槭裁匆o他刪除來自找麻煩呢?放在這里也只是提供一個(gè)參考,了解一下。

最后分享一個(gè)快捷鍵的使用:在我們寫項(xiàng)目的時(shí)候,有時(shí)候修改了代碼而沒有效果,這是因?yàn)闉g覽器使用的緩存加載,這個(gè)時(shí)候我們就可以使用這個(gè)快捷鍵來不使用緩存加載一個(gè)文件,來達(dá)到查看修改代碼之后的效果的目地。

ctrl+shift+r 不使用緩存加載一個(gè)文件

以上這篇對(duì)Django中static(靜態(tài))文件詳解以及{% static %}標(biāo)簽的使用方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何解決pycharm中用matplotlib畫圖不顯示中文的問題

    如何解決pycharm中用matplotlib畫圖不顯示中文的問題

    這篇文章主要介紹了如何解決pycharm中用matplotlib畫圖不顯示中文的問題,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-06-06
  • 淺談Python中的生成器和迭代器

    淺談Python中的生成器和迭代器

    這篇文章主要介紹了Python中的生成器和迭代器的的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • 使用Tensorflow?hub完成目標(biāo)檢測(cè)過程詳解

    使用Tensorflow?hub完成目標(biāo)檢測(cè)過程詳解

    這篇文章主要為大家介紹了使用Tensorflow?hub完成目標(biāo)檢測(cè)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Python FastAPI返回不帶雙引號(hào)的字符串問題

    Python FastAPI返回不帶雙引號(hào)的字符串問題

    這篇文章主要介紹了Python FastAPI返回不帶雙引號(hào)的字符串問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • python提取頁面內(nèi)url列表的方法

    python提取頁面內(nèi)url列表的方法

    這篇文章主要介紹了python提取頁面內(nèi)url列表的方法,涉及Python操作頁面元素的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • pandas.DataFrame.drop_duplicates 用法介紹

    pandas.DataFrame.drop_duplicates 用法介紹

    這篇文章主要介紹了pandas.DataFrame.drop_duplicates 用法介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 用Python畫小女孩放風(fēng)箏的示例

    用Python畫小女孩放風(fēng)箏的示例

    今天小編就為大家分享一篇用Python畫小女孩放風(fēng)箏的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python實(shí)現(xiàn)冒泡排序的簡(jiǎn)單應(yīng)用示例

    Python實(shí)現(xiàn)冒泡排序的簡(jiǎn)單應(yīng)用示例

    這篇文章主要介紹了Python實(shí)現(xiàn)冒泡排序的簡(jiǎn)單應(yīng)用,結(jié)合實(shí)例形式分析了Python基于冒泡排序?qū)崿F(xiàn)的輸入字符串?dāng)?shù)字排序與運(yùn)算操作,需要的朋友可以參考下
    2017-12-12
  • python 批量壓縮圖片的腳本

    python 批量壓縮圖片的腳本

    用Python編寫的批量壓縮圖片的腳本,可以自定義壓縮質(zhì)量,有批量圖片壓縮需求的朋友可以直接拿來用
    2021-06-06
  • python標(biāo)準(zhǔn)庫模塊之json庫的基礎(chǔ)用法

    python標(biāo)準(zhǔn)庫模塊之json庫的基礎(chǔ)用法

    json庫是處理JSON格式的Python標(biāo)準(zhǔn)庫,json庫主要包括兩類函數(shù),操作函數(shù)和解析函數(shù),下面這篇文章主要給大家介紹了關(guān)于python標(biāo)準(zhǔn)庫模塊之json庫的基礎(chǔ)用法,需要的朋友可以參考下
    2022-06-06

最新評(píng)論