這篇文章運(yùn)用簡單易懂的例子給大家介紹Django項(xiàng)目怎么使用靜態(tài)文件,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
鳳山網(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è)要多少錢,請找那個(gè)售后服務(wù)好的鳳山做網(wǎng)站的公司定做!
一、使用靜態(tài)文件
首先在你的polls目錄中創(chuàng)建一個(gè)static目錄。Django將在那里查找靜態(tài)文件,這與Django在polls/templates/中尋找對應(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文件。換句話說,這個(gè)css樣式文件應(yīng)該是polls/static/polls/style.css。你可以通過書寫polls/style.css在Django中訪問這個(gè)靜態(tài)文件,與你如何訪問模板的路徑類似。
靜態(tài)文件的命名空間:
與模板類似,我們可以將靜態(tài)文件直接放在polls/static(而不是創(chuàng)建另外一個(gè)polls 子目錄),但實(shí)際上這是一個(gè)壞主意。Django將使用它所找到的第一個(gè)匹配到的靜態(tài)文件,如果在你的不同應(yīng)用中存在兩個(gè)同名的靜態(tài)文件,Django將無法區(qū)分它們。我們需要告訴Django該使用其中的哪一個(gè),最簡單的方法就是為它們添加命名空間。也就是說,將這些靜態(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;}
接下來在模板文件polls/templates/polls/index.html的頭部加入下面的代碼:
{% load static %}
{% static %}模板標(biāo)簽會(huì)生成靜態(tài)文件的絕對URL路徑。
重啟服務(wù)器,在瀏覽器訪問http://localhost:8000/polls/,你會(huì)看到Question的超級(jí)鏈接變成了綠色(Django風(fēng)格!),這意味著你的樣式表被成功導(dǎo)入了。(如果不行就ctrl + F5強(qiáng)制刷新瀏覽器頁面,防止緩存。)
二、添加背景圖片
下面,我們在polls/static/polls/目錄下創(chuàng)建一個(gè)用于存放圖片的images子目錄,在這個(gè)子目錄里放入`background.gif文件。換句話說,這個(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)該使用相對路徑來相互鏈接靜態(tài)文件,因?yàn)檫@樣你可以改變STATIC_URL( static模板標(biāo)簽用它來生成URLs)而不用同時(shí)修改一大堆靜態(tài)文件中路徑相關(guān)的部分。
三、直接訪問靜態(tài)文件
實(shí)際上不管是在Django開發(fā)服務(wù)器上,還是在nginx+uwsgi+django部署的服務(wù)器上,都可以直接通過url訪問靜態(tài)文件,不需要在Django中專門為每個(gè)靜態(tài)文件編寫url路由和視圖。
比如,通過http://www.liujiangblog.com/static/images/default_avatar_male_50.gif你就可以直接獲得網(wǎng)站用戶的默認(rèn)頭像圖片了。
關(guān)于Django項(xiàng)目怎么使用靜態(tài)文件就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。