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

您的位置:首頁技術文章
文章詳情頁

Python Django中的STATIC_URL 設置和使用方式

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

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

關鍵的概念:Django中,靜態資源的存放通過設置 STATIC_URL, STATICFILES_DIRS 來設置,一般STATIC_URL設置為:/static/

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

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

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

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

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

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

模板中調用時:

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

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

在一個網頁中,不僅僅只有一個html骨架,還需要css樣式文件,js執行文件以及一些圖片等。因此在DTL中加載靜態文件是一個必須要解決的問題。在DTL中,使用static標簽來加載靜態文件。要使用static標簽,首先需要{% load static %}。

加載靜態文件的步驟如下:

首先確保django.contrib.staticfiles已經添加到settings.INSTALLED_APPS中。

確保在settings.py中設置了STATIC_URL。

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

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

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

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

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

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

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

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

{% load static %}

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

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

如果不想每次在模版中加載靜態文件都使用load加載static標簽,那么可以在settings.py中的TEMPLATES/OPTIONS添加’builtins’:[‘django.templatetags.static’],這樣以后在模版中就可以直接使用static標簽,而不用手動的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。那么我們就需要手動的將請求靜態文件的url與靜態文件的路徑進行映射了。示例代碼如下:

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

但平時我們并不會用到這個,Django內置已經將django.contrib.staticfiles添加進去了的,我們為什么要給他刪除來自找麻煩呢?放在這里也只是提供一個參考,了解一下。

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

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

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

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品亚洲精品| 国产欧美一区二区色老头| 国产精品115| 国产欧美高清视频在线| 中文字幕亚洲在线观看| 国产国产精品| 四虎4545www国产精品| 欧美丰满日韩| 日本免费一区二区三区四区| 欧美精品资源| 国产高清一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 在线亚洲一区| 日韩免费精品| 精品中文在线| 欧美精品一区二区久久| 亚洲精品国产精品粉嫩| 精品一区不卡| 日本在线精品| 免费精品视频| 久久国产三级| 国产美女高潮在线| 99热国内精品| 国产日韩欧美一区在线| 久久男女视频| 欧美黄色一区二区| 午夜欧美在线| 欧美极品一区二区三区| 天堂√8在线中文| 蜜臀久久久99精品久久久久久| 国产欧美欧美| 国产suv精品一区| 欧美亚洲国产一区| 久久精品 人人爱| 久久激情婷婷| 国产精品videossex| 久久国产精品亚洲77777| 亚洲欧美日本国产| 日韩在线综合| 岛国av免费在线观看| 日韩av三区| 欧美一区91| 国产精品久久久久9999高清| 日韩福利视频导航| 婷婷综合成人| 免费成人在线观看| 蜜臀a∨国产成人精品| 免费观看日韩电影| 日韩中文首页| 亚洲欧美综合| 免费观看在线综合色| 激情综合自拍| 国产不卡精品| 日韩高清成人| 尤物tv在线精品| 伊人成人网在线看| 一区久久精品| 丝瓜av网站精品一区二区| 好看不卡的中文字幕| 99免费精品| 快she精品国产999| 97欧美在线视频| 久久精品卡一| 先锋影音久久久| 亚洲精品伊人| 欧美日一区二区三区在线观看国产免| 亚洲小说春色综合另类电影| 999视频精品| 国产精品社区| 欧美日韩一区二区国产| 国产一区二区三区日韩精品| 91精品国产福利在线观看麻豆| 亚洲二区在线| 欧美视频精品全部免费观看| 999国产精品999久久久久久| 精品一区91| 四虎影视精品| 噜噜噜久久亚洲精品国产品小说| 蜜臀va亚洲va欧美va天堂| 午夜精品影视国产一区在线麻豆| 91嫩草精品| av在线最新| 久久精品123| 视频精品一区二区| 国产欧美日韩一级| 精精国产xxxx视频在线播放| 老司机久久99久久精品播放免费| 日本不卡中文字幕| 精品成人18| 在线精品国产亚洲| 久久影视三级福利片| 日韩免费福利视频| 亚洲精品影院在线观看| 成人在线免费观看网站| 在线午夜精品| 超碰在线99| 日韩高清欧美激情| 国产美女高潮在线| 日韩久久99| 国产一区久久| 日韩a一区二区| 亚洲精品国模| 99精品一区| 欧美成人aaa| 综合激情一区| 婷婷综合网站| 精品香蕉视频| 日韩精品久久久久久| 亚洲专区在线| 久久精品成人| 国产一区二区三区探花| 亚洲精选久久| 极品日韩av| 精品亚洲美女网站| 黄色欧美在线| 国产极品嫩模在线观看91精品| 蜜桃视频一区二区三区| 激情久久婷婷| 久久久久久黄| 日韩在线欧美| 国内一区二区三区| 久久精品国产精品亚洲毛片| 天堂久久一区| 亚州国产精品| 中文字幕日韩亚洲| 欧美专区18| 午夜一区在线| aⅴ色国产欧美| 久久国产精品99国产| 黄色av日韩| 免费看欧美美女黄的网站| 亚洲一区日本| 亚洲综合激情在线| 亚洲麻豆一区| 国产福利资源一区| 国产日本亚洲| 精品国产18久久久久久二百| 波多野结衣久久精品| 神马午夜久久| 日韩中文字幕1| 日韩黄色在线观看| 麻豆国产精品一区二区三区| 欧美日韩亚洲一区| 国产欧美精品| 日韩欧美精品综合| 91精品福利| 亚洲视频国产精品| 精品一区视频| 91精品观看| 欧美影院精品| 亚洲va中文在线播放免费| 日韩影院在线观看| 国产激情久久| 精品一区在线| 久久国产婷婷国产香蕉| 欧美日韩免费看片| 蜜臀av一区二区在线免费观看| 日本一不卡视频| 国产一区二区三区四区| 另类av一区二区| 国产成人精品一区二区三区在线| 影院欧美亚洲| 国产一区精品福利| 亚洲精品一级| 欧美色图国产精品| 欧美日一区二区三区在线观看国产免| 福利精品在线| 日韩精品亚洲一区二区三区免费| 成人精品国产亚洲| 日韩在线电影| 国产综合亚洲精品一区二| 国产精品久久久免费| 日韩免费在线| 国产精品麻豆成人av电影艾秋| 99视频在线精品国自产拍免费观看| 国产精品观看| 亚洲综合小说| 免费成人在线视频观看| 99久久精品网| 日韩欧美字幕| 精品美女在线视频| 国产精品一区二区三区av| 久久不射网站| 国产国产精品| 亚洲午夜精品久久久久久app| 久久一区国产| 国产精品一区二区美女视频免费看 | 国产不卡av一区二区| 91精品福利观看| 自拍自偷一区二区三区| 欧美一级精品| 999国产精品| 国产 日韩 欧美一区| 福利在线一区| 中文字幕在线看片| 中文字幕在线视频久| bbw在线视频| 欧美日韩尤物久久| 麻豆精品在线| 国产精品久久久久久久免费观看 |