Django項(xiàng)目怎么使用靜態(tài)文件

這篇文章運(yùn)用簡(jiǎn)單易懂的例子給大家介紹Django項(xiàng)目怎么使用靜態(tài)文件,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

鳳山網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,鳳山網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為鳳山上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的鳳山做網(wǎng)站的公司定做!

一、使用靜態(tài)文件

首先在你的polls目錄中創(chuàng)建一個(gè)static目錄。Django將在那里查找靜態(tài)文件,這與Django在polls/templates/中尋找對(duì)應(yīng)的模板文件的方式是一致的。

Django的STATICFILES_FINDERS設(shè)置項(xiàng)中包含一個(gè)查找器列表,它們知道如何從各種源中找到靜態(tài)文件。 其中一個(gè)默認(rèn)的查找器是AppDirectoriesFinder,它在每個(gè)INSTALLED_APPS下查找static子目錄,例如我們剛創(chuàng)建的那個(gè)static目錄。admin管理站點(diǎn)也為它的靜態(tài)文件使用相同的目錄結(jié)構(gòu)。

在剛才的static目錄中新建一個(gè)polls子目錄,再在該子目錄中創(chuàng)建一個(gè)style.css文件。換句話說(shuō),這個(gè)css樣式文件應(yīng)該是polls/static/polls/style.css。你可以通過(guò)書寫polls/style.css在Django中訪問(wèn)這個(gè)靜態(tài)文件,與你如何訪問(wèn)模板的路徑類似。

靜態(tài)文件的命名空間:

與模板類似,我們可以將靜態(tài)文件直接放在polls/static(而不是創(chuàng)建另外一個(gè)polls 子目錄),但實(shí)際上這是一個(gè)壞主意。Django將使用它所找到的第一個(gè)匹配到的靜態(tài)文件,如果在你的不同應(yīng)用中存在兩個(gè)同名的靜態(tài)文件,Django將無(wú)法區(qū)分它們。我們需要告訴Django該使用其中的哪一個(gè),最簡(jiǎn)單的方法就是為它們添加命名空間。也就是說(shuō),將這些靜態(tài)文件放進(jìn)以它們所在的應(yīng)用的名字同名的另外一個(gè)子目錄下(白話講:多建一層與應(yīng)用同名的子目錄)。

PS:良好的目錄結(jié)構(gòu)是每個(gè)應(yīng)用都應(yīng)該創(chuàng)建自己的urls、forms、views、models、templates和static,每個(gè)templates包含一個(gè)與應(yīng)用同名的子目錄,每個(gè)static也包含一個(gè)與應(yīng)用同名的子目錄。

將下面的代碼寫入樣式文件polls/static/polls/style.css:

li a {
    color: green;}

接下來(lái)在模板文件polls/templates/polls/index.html的頭部加入下面的代碼:

{% load static %}<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}">

{% static %}模板標(biāo)簽會(huì)生成靜態(tài)文件的絕對(duì)URL路徑。

重啟服務(wù)器,在瀏覽器訪問(wèn)http://localhost:8000/polls/,你會(huì)看到Question的超級(jí)鏈接變成了綠色(Django風(fēng)格?。?,這意味著你的樣式表被成功導(dǎo)入了。(如果不行就ctrl + F5強(qiáng)制刷新瀏覽器頁(yè)面,防止緩存。)

二、添加背景圖片

下面,我們?cè)趐olls/static/polls/目錄下創(chuàng)建一個(gè)用于存放圖片的images子目錄,在這個(gè)子目錄里放入`background.gif文件。換句話說(shuō),這個(gè)文件的路徑是polls/static/polls/images/background.gif。(你可以使用任何你想要的圖片)

在css樣式文件polls/static/polls/style.css中添加下面的代碼:

body {
    background: white url("images/background.gif") no-repeat;}

重新加載http://localhost:8000/polls/(CTRL+F5或者直接F5),你會(huì)在屏幕的左上角看到載入的背景圖片。

提示:

很顯然,{% static %}模板標(biāo)簽不能用在靜態(tài)文件,比如樣式表中,因?yàn)樗麄儾皇怯蒁jango生成的。 你應(yīng)該使用相對(duì)路徑來(lái)相互鏈接靜態(tài)文件,因?yàn)檫@樣你可以改變STATIC_URL( static模板標(biāo)簽用它來(lái)生成URLs)而不用同時(shí)修改一大堆靜態(tài)文件中路徑相關(guān)的部分。

三、直接訪問(wèn)靜態(tài)文件

實(shí)際上不管是在Django開(kāi)發(fā)服務(wù)器上,還是在nginx+uwsgi+django部署的服務(wù)器上,都可以直接通過(guò)url訪問(wèn)靜態(tài)文件,不需要在Django中專門為每個(gè)靜態(tài)文件編寫url路由和視圖。

比如,通過(guò)http://www.liujiangblog.com/static/images/default_avatar_male_50.gif你就可以直接獲得網(wǎng)站用戶的默認(rèn)頭像圖片了。

關(guān)于Django項(xiàng)目怎么使用靜態(tài)文件就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

文章名稱:Django項(xiàng)目怎么使用靜態(tài)文件
文章起源:http://bm7419.com/article30/pcegpo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)網(wǎng)站導(dǎo)航、自適應(yīng)網(wǎng)站定制網(wǎng)站、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化