日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Python Django中的STATIC_URL 設(shè)置和使用方式

瀏覽:157日期:2022-07-28 15:35:25

使用Django靜態(tài)設(shè)置時,遇到很多問題,經(jīng)過艱苦的Baidu, stack overflow, Django原檔閱讀,終于把靜態(tài)圖片給搞出來了。特記錄下來。

關(guān)鍵的概念:Django中,靜態(tài)資源的存放通過設(shè)置 STATIC_URL, STATICFILES_DIRS 來設(shè)置,一般STATIC_URL設(shè)置為:/static/

STATIC_URL=’/static/’, 這個static 是在Django 具體APP下建立的static目錄,用來存放靜態(tài)資源。而STATICFILES_DIRS一般用來設(shè)置通用的靜態(tài)資源,對應(yīng)的目錄不放在APP下,而是放在Project下,例如:

STATICFILES_DIRS=(os.path.join(BASE_DIR, 'common_static'),)

具體在模板文件中訪問的時候,都是統(tǒng)一用:/static/資源名的方式,就可以訪問到資源,不論具體的目錄是APP下的static,還是project下的common_static, 都可以用/static/資源名的方式訪問到。

為增強可移植性,在模板中可以用:STATIC_URL來代替具體的/static/來設(shè)置資源路徑,但是需要在settings.py中2個地方進行設(shè)置,否則會發(fā)生取不到資源的錯誤:

1. INSTALLED_APPS 中,加入 ’django.contrib.staticfiles’

2. TEMPLATES 中,context_processors中,加入django.template.context_processors.static

模板中調(diào)用時:

<img src='http://www.b3g6.com/bcjs/{{STATIC_URL}}pic.jpg ' />

補充知識:Django中static(靜態(tài))文件詳解以及{% static %}標(biāo)簽的使用

在一個網(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。

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

在已經(jīng)安裝了的app下創(chuàng)建一個文件夾叫做static,然后再在這個static文件夾下創(chuàng)建一個當(dāng)前app的名字的文件夾,再把靜態(tài)文件放到這個文件夾下。例如你的app叫做book,有一個靜態(tài)文件叫做book.jpg,那么路徑為book/static/book/book.jpg。

(為什么在app下創(chuàng)建一個static文件夾,還需要在這個static下創(chuàng)建一個同app名字的文件夾呢?原因是如果直接把靜態(tài)文件放在static文件夾下,那么在模版加載靜態(tài)文件的時候就是使用book.jpg,如果在多個app之間有同名的靜態(tài)文件,這時候可能就會產(chǎn)生混淆。而在static文件夾下加了一個同名app文件夾,在模版中加載的時候就是使用app名/book.jpg,這樣就可以避免產(chǎn)生混淆。)

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

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

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

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

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

{% load static %}

<link rel='stylesheet' href='http://www.b3g6.com/bcjs/{% static ’style.css’ %}' rel='external nofollow' >

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

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

注意: 位置不要添加錯誤了

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

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

如果沒有在settings.INSTALLED_APPS中添加django.contrib.staticfiles。那么我們就需要手動的將請求靜態(tài)文件的url與靜態(tài)文件的路徑進行映射了。示例代碼如下:

from django.conf import settingsfrom django.conf.urls.static import staticurlpatterns = [ # 其他的url映射] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

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

最后分享一個快捷鍵的使用:在我們寫項目的時候,有時候修改了代碼而沒有效果,這是因為瀏覽器使用的緩存加載,這個時候我們就可以使用這個快捷鍵來不使用緩存加載一個文件,來達到查看修改代碼之后的效果的目地。

ctrl+shift+r 不使用緩存加載一個文件

以上這篇Python Django中的STATIC_URL 設(shè)置和使用方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久国际精品| 亚洲影视一区| 国产综合激情| 天使萌一区二区三区免费观看| 伊人久久婷婷| 野花国产精品入口| 四虎成人av| 日韩在线视频一区二区三区| 日本一二区不卡| 日韩精品欧美精品| 中文一区一区三区免费在线观| 成人亚洲精品| 国产一二在线播放| 一区福利视频| 欧美日韩视频免费观看| 国产精品av久久久久久麻豆网| 一区在线免费| 欧美一区91| 久久亚洲道色| 日本视频一区二区| 高潮一区二区| 久久久免费人体| 日本成人在线不卡视频| 亚洲天堂免费电影| 国产精久久久| 合欧美一区二区三区| 精品一区二区三区免费看| 欧美久久精品一级c片| 一区二区自拍| 日韩激情一区二区| 国产精品嫩模av在线| 亚洲黄色网址| 91精品蜜臀一区二区三区在线| 精品国产午夜| 天堂va在线高清一区| 在线一区免费观看| 国产探花一区二区| 国产精品麻豆成人av电影艾秋| 国产精品手机在线播放| 国产乱人伦精品一区| 日韩毛片视频| 精品国产麻豆| 丰满少妇一区| 午夜电影一区| 日韩精品一二三区| 成人久久一区| 成人一区而且| 狠狠操综合网| 亚洲欧美一级| 国产精品任我爽爆在线播放| 国产免费av国片精品草莓男男| 国产成人免费精品| 国产精品任我爽爆在线播放 | 国产免费成人| 日韩高清成人| 好吊一区二区三区| 欧美一区二区三区激情视频 | 国产日产精品_国产精品毛片| 爽爽淫人综合网网站| 国产精品毛片在线看| 欧美成人精品一级| 中文字幕在线视频网站| 午夜在线观看免费一区| 日韩亚洲一区在线| 亚洲黄色中文字幕| 激情视频一区二区三区| 欧美亚洲网站| 国产不卡精品| 秋霞影院一区二区三区| 亚州精品视频| 激情五月综合| 777久久精品| 青青草伊人久久| 香蕉久久夜色精品国产| 日韩精品视频网| 亚洲精品国产嫩草在线观看| 亚洲色图国产| 日韩高清一区在线| 日韩中文字幕亚洲一区二区va在线 | 国产精品久久久久久模特| 成人自拍av| 日韩中出av| 欧美在线观看视频一区| 国产日韩欧美中文在线| 亚洲午夜免费| 欧美影院视频| 成人亚洲欧美| 免费精品视频| 亚洲午夜在线| 国产精品yjizz视频网| 亚洲+小说+欧美+激情+另类| 亚洲另类av| 国产欧美日韩一区二区三区四区 | 亚洲乱亚洲高清| 精品高清久久| 日韩极品在线观看| 久久久成人网| 国产精品久久777777毛茸茸| 91综合网人人| 亚洲精品一区三区三区在线观看| 日韩一区二区久久| 国产亚洲午夜| 国产一区二区三区免费在线| 99在线精品免费视频九九视 | 色婷婷色综合| 久久久久久一区二区| 日韩精品一区二区三区中文| 亚洲美洲欧洲综合国产一区| 欧美肉体xxxx裸体137大胆| 91精品久久久久久久久久不卡| 国产一区二区三区黄网站| 亚洲a一区二区三区| 免费一区二区三区在线视频| 国产精品国码视频| 国产日韩精品视频一区二区三区| 日韩精品免费一区二区在线观看| 久久久国产精品一区二区中文| 国产日产一区| 蜜臀久久久99精品久久久久久| 日韩av一二三| 国产精品久久久免费| 激情六月综合| bbw在线视频| 欧美~级网站不卡| 国产精品毛片久久| 高清av一区| 国产成年精品| 欧美色综合网| 午夜视频一区二区在线观看| 国产欧美一区二区色老头| 久久av免费| 在线观看亚洲精品福利片| 日韩专区视频网站| 四虎成人精品一区二区免费网站| 成人午夜网址| 日本在线精品| 一区在线视频观看| 国产另类在线| 天堂网av成人| 欧美日韩中出| 国产欧美日韩视频在线| 亚洲免费一区三区| 日欧美一区二区| 免费成人性网站| 精品一区二区三区的国产在线观看| 青草av.久久免费一区| 91av亚洲| 欧美一区二区三区激情视频| 欧美综合二区| 日韩av资源网| 久久香蕉精品香蕉| 日韩亚洲精品在线| 久久美女性网| 综合国产视频| 日本久久一区| 久久激情婷婷| 成人综合一区| 久久亚洲欧美| 日韩精品久久久久久久软件91| 日韩美女精品| 久久久久久久久丰满| 999国产精品视频| 日产欧产美韩系列久久99| 亚洲精品极品| 久久国产免费| 国产精品一区免费在线| 久久久久亚洲| 国产乱码精品一区二区三区亚洲人 | 99国产精品| 日韩精品一二三| 亚洲专区视频| 欧美男人天堂| 激情综合婷婷| 国产精品久久久久77777丨| 欧美va天堂| 精品国产美女a久久9999| 9999国产精品| 久久亚洲影院| 国产精品综合色区在线观看| 中文字幕在线看片| 在线看片不卡| 国产日韩免费| 久久三级视频| 综合一区在线| 国产精品密蕾丝视频下载| 毛片在线网站| 色8久久久久| 欧美激情三区| 亚洲伊人精品酒店| 欧美国产亚洲精品| 亚洲免费婷婷| 国产精品精品国产一区二区| 亚洲欧美日韩国产一区| 麻豆91精品视频| 亚洲性视频在线| 日韩成人亚洲| 国产精品久久久久久妇女| 亚洲制服少妇| 亚洲欧洲高清| 91精品美女|