乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Part 6:靜態(tài)文件

       寧?kù)o致遠(yuǎn)oj1kn5 2019-05-17

      該系列教程系個(gè)人原創(chuàng),并完整發(fā)布在個(gè)人官網(wǎng)劉江的博客和教程

      所有轉(zhuǎn)載本文者,需在頂部顯著位置注明原作者及www.官網(wǎng)地址。


      前面我們編寫(xiě)了一個(gè)經(jīng)過(guò)測(cè)試的投票應(yīng)用,現(xiàn)在讓我們給它添加一張樣式表和一張背景圖片。

      除了由服務(wù)器生成的HTML文件外,WEB應(yīng)用一般需要提供一些其它的必要文件,比如圖片文件、JavaScript腳本和CSS樣式表等等,用來(lái)為用戶呈現(xiàn)出一個(gè)完整的網(wǎng)頁(yè)。在Django中,我們將這些文件統(tǒng)稱為“靜態(tài)文件”,因?yàn)檫@些文件的內(nèi)容基本是固定不變的,不需要?jiǎng)討B(tài)生成。

      對(duì)于小項(xiàng)目,這些都不是大問(wèn)題,你可以將靜態(tài)文件放在任何你的web服務(wù)器能夠找到的地方。但是對(duì)于大型項(xiàng)目,尤其是那些包含多個(gè)app在內(nèi)的項(xiàng)目,處理那些由app帶來(lái)的多套不同的靜態(tài)文件是個(gè)麻煩活。

      但這正是django.contrib.staticfiles的用途:它收集每個(gè)應(yīng)用(和任何你指定的地方)的靜態(tài)文件到一個(gè)統(tǒng)一指定的地方,并且易于訪問(wèn)。

      一、使用靜態(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ò)書(shū)寫(xiě)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、views、models、templates和static,每個(gè)templates包含一個(gè)與應(yīng)用同名的子目錄,每個(gè)static也包含一個(gè)與應(yīng)用同名的子目錄。

      將下面的代碼寫(xiě)入樣式文件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èn)http://localhost:8000/polls/,你會(huì)看到Question的超級(jí)鏈接變成了綠色(Django風(fēng)格?。?,這意味著你的樣式表被成功導(dǎo)入了。

      二、添加背景圖片

      下面,我們?cè)?code>polls/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 right bottom;
      }

      重新加載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中專門(mén)為每個(gè)靜態(tài)文件編寫(xiě)url路由和視圖。

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

      本節(jié)簡(jiǎn)要的介紹了如何使用靜態(tài)文件,更多的內(nèi)容留待后續(xù)。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多