Django之静态文件
在介紹分布式路由之前,先介紹下靜態(tài)文件,比如圖片,音視頻文件,這些都屬于靜態(tài)文件。以百度首頁(yè)為例:
大部分都是靜態(tài)文件,以圖片為例,瀏覽器加載img標(biāo)簽,解讀里面的src屬性,對(duì)src里面的地址發(fā)http請(qǐng)求,當(dāng)瀏覽器接收到響應(yīng)的時(shí)候,進(jìn)行渲染并展示。那在djnango發(fā)送靜態(tài)文件,如何使用呢?
在settings.py中,配置靜態(tài)文件的訪問(wèn)路徑[默認(rèn)是配置了的]
訪問(wèn)靜態(tài)文件時(shí),通過(guò)/static/xxx或者h(yuǎn)ttp://127.0.0.0:8000/static/xxx,其中[xxx表示具體的靜態(tài)資源位置],這些靜態(tài)文件一定是存放在服務(wù)器上的,那如何得知存放在服務(wù)器的什么位置呢,此時(shí)需要使用到第二項(xiàng)功能。
配置靜態(tài)文件的存儲(chǔ)路徑 STATICFILES_DIRS,STATICFILES_DIRS保存的是靜態(tài)文件在服務(wù)器上的存放位置。
我們創(chuàng)建一個(gè)mysite3的項(xiàng)目,結(jié)合上面介紹的知識(shí)進(jìn)行學(xué)習(xí)
F:\Django\DjangoStudy>django-admin startproject mysite3
同樣設(shè)置下setting.py中的crsf(注釋),將語(yǔ)言設(shè)置為中文 TIME_ZONE = ‘Asia/Shanghai’,已經(jīng)設(shè)置時(shí)區(qū)和配置靜態(tài)文件的存放位置,配置模板文件的路徑
按照如上的目錄層級(jí)創(chuàng)建文件夾,比如這里創(chuàng)建了靜態(tài)文件路徑,在static路徑下,創(chuàng)建了image和js路徑,這里舉例說(shuō)明,在image下添加一個(gè)djagno.jpg的圖片。接著在urls.py中新增路由
在mysite3二級(jí)子目錄下新增一個(gè)views.py文件,并新增視圖函數(shù)
from django.shortcuts import renderdef test_static(reqeust):return render(reqeust,'test_static.html')在templates目錄下新增一個(gè)test_static.html文件
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>測(cè)試靜態(tài)文件</title> </head> <body><img src="http://127.0.0.1:8000/static/image/django.jpg" width="200px" height="200px"> <img src="/static/image/django.jpg" width="200px" height="200px"> </body> </html>加載靜態(tài)資源的方式可以通過(guò)絕對(duì)路徑和相對(duì)路徑的兩種方式
整體目錄結(jié)構(gòu)如下所示:
雖然以上兩種方法可以加載靜態(tài)資源,但這兩種方法很不Django;使用django的方式訪問(wèn)靜態(tài)文件,通過(guò){% static %}標(biāo)簽訪問(wèn)靜態(tài)文件,
- 加載static- {% load static %}
- 使用靜態(tài)資源-{% staitc ‘靜態(tài)資源路徑’ %}
- 樣例 < img src="{% staitc ‘image/django.jpg’ %}" >
在test_static.html中新增一個(gè)django方式的加載圖片
運(yùn)行結(jié)果如下所示,依次展示為絕對(duì)路徑,相對(duì)路徑,和django方式的路徑進(jìn)行靜態(tài)資源訪問(wèn)
總結(jié)
以上是生活随笔為你收集整理的Django之静态文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Django之请求和响应
- 下一篇: Django值应用和分布式路由