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

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

文件儲(chǔ)存API

獲取當(dāng)前的儲(chǔ)存類(lèi)

Django提供了兩個(gè)便捷的方法來(lái)獲取當(dāng)前的儲(chǔ)存類(lèi):

class DefaultStorage[source]

DefaultStorage 提供對(duì)當(dāng)前的默認(rèn)儲(chǔ)存系統(tǒng)的延遲訪(fǎng)問(wèn),像DEFAULT_FILE_STORAGE中定義的那樣。DefaultStorage 內(nèi)部使用了get_storage_class()

get_storage_class([import_path=None])[source]

返回實(shí)現(xiàn)儲(chǔ)存API的類(lèi)或者模塊。

當(dāng)沒(méi)有帶著import_path 參數(shù)調(diào)用的時(shí)候, get_storage_class 會(huì)返回當(dāng)前默認(rèn)的儲(chǔ)存系統(tǒng),像DEFAULT_FILE_STORAGE中定義的那樣。如果提供了import_pathget_storage_class會(huì)嘗試從提供的路徑導(dǎo)入類(lèi)或者模塊,并且如果成功的話(huà)返回它。如果導(dǎo)入不成功會(huì)拋出異常。

FileSystemStorage類(lèi)

class FileSystemStorage([location=None, base_url=None, file_permissions_mode=None, directory_permissions_mode=None])[source]

FileSystemStorage類(lèi)在本地文件系統(tǒng)上實(shí)現(xiàn)了基本的文件存儲(chǔ)功能。它繼承自Storage ,并且提供父類(lèi)的所有公共方法的實(shí)現(xiàn)。

location

儲(chǔ)存文件的目錄的絕對(duì)路徑。默認(rèn)為MEDIA_ROOT設(shè)置的值。

base_url

在當(dāng)前位置提供文件儲(chǔ)存的URL。默認(rèn)為MEDIA_URL設(shè)置的值。

file_permissions_mode

文件系統(tǒng)的許可,當(dāng)文件保存時(shí)會(huì)接收到它。默認(rèn)為FILE_UPLOAD_PERMISSIONS

New in Django 1.7:

新增了file_permissions_mode屬性。之前,文件總是會(huì)接收到FILE_UPLOAD_PERMISSIONS許可。

directory_permissions_mode

文件系統(tǒng)的許可,當(dāng)目錄保存時(shí)會(huì)接收到它。默認(rèn)為FILE_UPLOAD_DIRECTORY_PERMISSIONS

New in Django 1.7:

新增了directory_permissions_mode屬性。之前,目錄總是會(huì)接收到FILE_UPLOAD_DIRECTORY_PERMISSIONS許可。

注意

FileSystemStorage.delete()在提供的文件名稱(chēng)不存在的時(shí)候并不會(huì)拋出任何異常。

Storage類(lèi)

class Storage[source]

Storage類(lèi)為文件的存儲(chǔ)提供了標(biāo)準(zhǔn)化的API,并帶有一系列默認(rèn)行為,所有其它的文件存儲(chǔ)系統(tǒng)可以按需繼承或者復(fù)寫(xiě)它們。

注意

對(duì)于返回原生datetime對(duì)象的方法,所使用的有效時(shí)區(qū)為os.environ['TZ']的當(dāng)前值。要注意它總是可以通過(guò)Django的TIME_ZONE來(lái)設(shè)置。

accessed_time(name)[source]

返回包含文件的最后訪(fǎng)問(wèn)時(shí)間的原生datetime對(duì)象。對(duì)于不能夠返回最后訪(fǎng)問(wèn)時(shí)間的儲(chǔ)存系統(tǒng),會(huì)拋出NotImplementedError異常。

created_time(name)[source]

返回包含文件創(chuàng)建時(shí)間的原生datetime對(duì)象。對(duì)于不能夠返回創(chuàng)建時(shí)間的儲(chǔ)存系統(tǒng),會(huì)拋出NotImplementedError異常。

delete(name)[source]

刪除name引用的文件。如果目標(biāo)儲(chǔ)存系統(tǒng)不支持刪除操作,會(huì)拋出NotImplementedError異常。

exists(name)[source]

如果提供的名稱(chēng)所引用的文件在文件系統(tǒng)中存在,則返回True,否則如果這個(gè)名稱(chēng)可用于新文件,返回False。

get_available_name(name, max_length=None)[source]

返回基于name參數(shù)的文件名稱(chēng),它在目標(biāo)儲(chǔ)存系統(tǒng)中可用于寫(xiě)入新的內(nèi)容。

如果提供了max_length,文件名稱(chēng)長(zhǎng)度不會(huì)超過(guò)它。如果不能找到可用的、唯一的文件名稱(chēng),會(huì)拋出SuspiciousFileOperation 異常。

如果name命名的文件已存在,一個(gè)下劃線(xiàn)加上隨機(jī)7個(gè)數(shù)字或字母的字符串會(huì)添加到文件名稱(chēng)的末尾,擴(kuò)展名之前。

Changed in Django 1.7:

之前,下劃線(xiàn)和一位數(shù)字(比如"_1","_2",以及其他)會(huì)添加到文件名稱(chēng)的末尾,直到目標(biāo)目錄中發(fā)現(xiàn)了可用的名稱(chēng)。一些惡意的用戶(hù)會(huì)利用這一確定性的算法來(lái)進(jìn)行dos攻擊。這一變化也在1.6.6, 1.5.9, 和 1.4.14中出現(xiàn)。
Changed in Django 1.8:

新增了max_length參數(shù)。

get_valid_name(name)[source]

返回基于name參數(shù)的文件名稱(chēng),它適用于目標(biāo)儲(chǔ)存系統(tǒng)。

listdir(path)[source]

列出特定目錄的所有內(nèi)容,返回一個(gè)包含2元組的列表;第一個(gè)元素是目錄,第二個(gè)是文件。對(duì)于不能夠提供列表功能的儲(chǔ)存系統(tǒng),拋出NotImplementedError異常。

modified_time(name)[source]

返回包含最后修改時(shí)間的原生datetime對(duì)象。對(duì)于不能夠返回最后修改時(shí)間的儲(chǔ)存系統(tǒng),拋出NotImplementedError異常。

open(name, mode='rb')[source]

通過(guò)提供的name打開(kāi)文件。注意雖然返回的文件確保為File對(duì)象,但可能實(shí)際上是它的子類(lèi)。在遠(yuǎn)程文件儲(chǔ)存的情況下,這意味著讀寫(xiě)操作會(huì)非常慢,所以警告一下。

path(name)[source]

本地文件系統(tǒng)的路徑,文件可以用Python標(biāo)準(zhǔn)的open()在里面打開(kāi)。對(duì)于不能從本地文件系統(tǒng)訪(fǎng)問(wèn)的儲(chǔ)存系統(tǒng),拋出NotImplementedError異常。

save(name, content, max_length=None)[source]

使用儲(chǔ)存系統(tǒng)來(lái)保存一個(gè)新文件,最好帶有特定的名稱(chēng)。如果名稱(chēng)為 name的文件已存在,儲(chǔ)存系統(tǒng)會(huì)按需修改文件名稱(chēng)來(lái)獲取一個(gè)唯一的名稱(chēng)。返回被儲(chǔ)存文件的實(shí)際名稱(chēng)。

max_length參數(shù)會(huì)傳遞給get_available_name()。

content參數(shù)必須為django.core.files.File或者File子類(lèi)的實(shí)例。

Changed in Django 1.8:

新增了max_length參數(shù)。

size(name)[source]

返回name所引用的文件的總大小,以字節(jié)為單位。對(duì)于不能夠返回文件大小的儲(chǔ)存系統(tǒng),拋出NotImplementedError異常。

url(name)[source]

返回URL,通過(guò)它可以訪(fǎng)問(wèn)到name所引用的文件。對(duì)于不支持通過(guò)URL訪(fǎng)問(wèn)的儲(chǔ)存系統(tǒng),拋出NotImplementedError異常。

譯者:Django 文檔協(xié)作翻譯小組,原文:Storage API

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

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