在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ 編寫你的第一個(gè)Django應(yīng)用,第6部分
編寫自定義存儲(chǔ)系統(tǒng)
高級(jí)
編寫你的第一個(gè)Django應(yīng)用,第5部分
視圖層
Django管理文檔生成器
編寫你的第一個(gè) Django 程序 第3部分
編寫你的第一個(gè)Django應(yīng)用,第6部分
模型層
中間件
測(cè)試
數(shù)據(jù)庫(kù)訪問(wèn)優(yōu)化
文件上傳
中間件
驗(yàn)證器
基于類的內(nèi)建通用視圖
部署靜態(tài)文件
使用Django認(rèn)證系統(tǒng)
高級(jí)教程:如何編寫可重用的應(yīng)用
Model 類參考
Django 初探
使用Django輸出PDF
模型的實(shí)例
模型
文件上傳
進(jìn)行原始的sql查詢
面向程序員
中間件
編寫數(shù)據(jù)庫(kù)遷移
TemplateResponse 和 SimpleTemplateResponse
異常
Django中的測(cè)試
基礎(chǔ)
管理器
File對(duì)象
URL調(diào)度器
加密簽名
國(guó)際化和本地化
日志
查詢集
django-admin 和 manage.py
使用基于類的視圖處理表單
聚合
內(nèi)建基于類的視圖的API
如何使用會(huì)話
部署 Django
其它
其它核心功能
高級(jí)
Django中的密碼管理
模型元選項(xiàng)
按需內(nèi)容處理
查找 API 參考
高級(jí)
Django 的快捷函數(shù)
Django 的設(shè)置
Admin
開(kāi)發(fā)過(guò)程
新手入門
基于類的視圖
模型實(shí)例參考
信號(hào)
表單素材 ( <code>Media</code> 類)
自定義查找
常見(jiàn)的網(wǎng)站應(yīng)用工具
模型
django.contrib.humanize
Django模版語(yǔ)言
點(diǎn)擊劫持保護(hù)
管理操作
編寫你的第一個(gè) Django 程序 第2部分
Django安全
模式編輯器
多數(shù)據(jù)庫(kù)
部署
基于類的視圖
內(nèi)建的視圖
視圖裝飾器
面向設(shè)計(jì)師
編寫視圖
應(yīng)用程序
如何使用WSGI 部署
參考
表單 API
文件儲(chǔ)存API
認(rèn)證
國(guó)際化和本地化
錯(cuò)誤報(bào)告
基礎(chǔ)
基礎(chǔ)
將遺留數(shù)據(jù)庫(kù)整合到Django
教程
Django異常
編寫你的第一個(gè) Django 程序 第4部分
遷移
分頁(yè)
重定向應(yīng)用
表單
從零開(kāi)始
為模型提供初始數(shù)據(jù)
設(shè)置
使用Django輸出CSV
關(guān)聯(lián)對(duì)象參考
使用表單
Django 中的用戶認(rèn)證
快速安裝指南
安全問(wèn)題歸檔
數(shù)據(jù)庫(kù)函數(shù)
編寫自定義的django-admin命令
高級(jí)教程
管理文件
格式本地化
基于類的通用視圖 —— 索引
安全
系統(tǒng)檢查框架
為Django編寫首個(gè)補(bǔ)丁
模板層
Widgets
編寫你的第一個(gè) Django 程序 第1部分
執(zhí)行查詢

編寫你的第一個(gè)Django應(yīng)用,第6部分

本教程上接教程 5。 我們已經(jīng)建立一個(gè)測(cè)試過(guò)的網(wǎng)頁(yè)投票應(yīng)用,現(xiàn)在我們將添加一張樣式表和一張圖片。

除了由服務(wù)器生成的HTML文件外,網(wǎng)頁(yè)應(yīng)用一般需要提供其它必要的文件 —— 比如圖片文件、JavaScript腳本和CSS樣式表 —— 來(lái)為用戶呈現(xiàn)出一個(gè)完整的網(wǎng)站。 在Django中,我們將這些文件稱為“靜態(tài)文件”。

對(duì)于小型項(xiàng)目,這不是個(gè)大問(wèn)題,因?yàn)槟憧梢詫⑺鼈兎旁谀愕木W(wǎng)頁(yè)服務(wù)器可以訪問(wèn)到的地方。 然而,在大一點(diǎn)的項(xiàng)目中 —— 尤其是那些由多個(gè)應(yīng)用組成的項(xiàng)目 —— 處理每個(gè)應(yīng)用提供的多個(gè)靜態(tài)文件集合開(kāi)始變得很難。

這正是django.contrib.staticfiles的用途:它收集每個(gè)應(yīng)用(和任何你指定的地方)的靜態(tài)文件到一個(gè)單獨(dú)的位置,這個(gè)位置在線上可以很容易維護(hù)。

自定義你的應(yīng)用的外觀

首先在你的polls中創(chuàng)建一個(gè)static目錄。Django將在那里查找靜態(tài)文件,與Django如何polls/templates/內(nèi)部的模板類似。

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

在你剛剛創(chuàng)建的static目錄中,創(chuàng)建另外一個(gè)目錄polls并在它下面創(chuàng)建一個(gè)文件style.css。換句話講,你的樣式表應(yīng)該位于polls/static/polls/style.css。因?yàn)锳ppDirectoriesFinder 靜態(tài)文件查找器的工作方式,你可以通過(guò)polls/style.css在Django中訪問(wèn)這個(gè)靜態(tài)文件,與你如何訪問(wèn)模板的路徑類似。

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

與模板類似,我們可以家那個(gè)我們的靜態(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è)目錄下。

將下面的代碼放入樣式表中 (polls/static/polls/style.css):

polls/static/polls/style.css
li a {
    color: green;
}

下一步,在polls/templates/polls/index.html的頂端添加如下內(nèi)容 :

polls/templates/polls/index.html
{% load staticfiles %}

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

{% load staticfiles %} 從staticfiles模板庫(kù)加載{% static %} 模板標(biāo)簽。{% static %}模板標(biāo)簽會(huì)生成靜態(tài)文件的絕對(duì)URL。

這就是你在開(kāi)發(fā)過(guò)程中,所需要對(duì)靜態(tài)文件做的所有處理。 重新加載 http://localhost:8000/polls/ ,你應(yīng)該會(huì)看到Question的超鏈接變成了綠色(Django的風(fēng)格!),這意味著你的樣式表被成功導(dǎo)入。

添加一張背景圖片

下一步,我們將創(chuàng)建一個(gè)子目錄來(lái)存放圖片。 在polls/static/polls/目錄中創(chuàng)建一個(gè) images 子目錄。在這個(gè)目錄中,放入一張圖片background.gif。換句話,將你的圖片放在 polls/static/polls/images/background.gif。

然后,向你的樣式表添加(polls/static/polls/style.css):

polls/static/polls/style.css
body {
    background: white url("images/background.gif") no-repeat right bottom;
}

重新加載 http://localhost:8000/polls/ ,你應(yīng)該在屏幕的右下方看到載入的背景圖片。

警告:

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

這些知識(shí)基礎(chǔ)。關(guān)于靜態(tài)文件設(shè)置的更多細(xì)節(jié)和框架中包含的其它部分,參見(jiàn)靜態(tài)文件 howto 和靜態(tài)文件參考。部署靜態(tài)文件討論如何在真實(shí)的服務(wù)器上使用靜態(tài)文件。

下一步?

新手教程到此結(jié)束。 在這期間,你可能想要在如何查看文檔中了解文檔的結(jié)構(gòu)和查找相關(guān)信息方法。

如果你熟悉Python 打包的技術(shù),并且對(duì)如何將投票應(yīng)用制作成一個(gè)“可重用的應(yīng)用”感興趣,請(qǐng)看高級(jí)教程:如何編寫可重用的應(yīng)用。

譯者:Django 文檔協(xié)作翻譯小組,原文:Part 6: Static files。

本文以 CC BY-NC-SA 3.0 協(xié)議發(fā)布,轉(zhuǎn)載請(qǐng)保留作者署名和文章出處。

Django 文檔協(xié)作翻譯小組人手緊缺,有興趣的朋友可以加入我們,完全公益性質(zhì)。交流群:467338606。

{% endraw %}