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

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

文件儲存API

獲取當前的儲存類

Django提供了兩個便捷的方法來獲取當前的儲存類:

class DefaultStorage[source]

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

get_storage_class([import_path=None])[source]

返回實現(xiàn)儲存API的類或者模塊。

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

FileSystemStorage類

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

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

location

儲存文件的目錄的絕對路徑。默認為MEDIA_ROOT設置的值。

base_url

在當前位置提供文件儲存的URL。默認為MEDIA_URL設置的值。

file_permissions_mode

文件系統(tǒng)的許可,當文件保存時會接收到它。默認為FILE_UPLOAD_PERMISSIONS。

New in Django 1.7:

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

directory_permissions_mode

文件系統(tǒng)的許可,當目錄保存時會接收到它。默認為FILE_UPLOAD_DIRECTORY_PERMISSIONS

New in Django 1.7:

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

注意

FileSystemStorage.delete()在提供的文件名稱不存在的時候并不會拋出任何異常。

Storage類

class Storage[source]

Storage類為文件的存儲提供了標準化的API,并帶有一系列默認行為,所有其它的文件存儲系統(tǒng)可以按需繼承或者復寫它們。

注意

對于返回原生datetime對象的方法,所使用的有效時區(qū)為os.environ['TZ']的當前值。要注意它總是可以通過Django的TIME_ZONE來設置。

accessed_time(name)[source]

返回包含文件的最后訪問時間的原生datetime對象。對于不能夠返回最后訪問時間的儲存系統(tǒng),會拋出NotImplementedError異常。

created_time(name)[source]

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

delete(name)[source]

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

exists(name)[source]

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

get_available_name(name, max_length=None)[source]

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

如果提供了max_length,文件名稱長度不會超過它。如果不能找到可用的、唯一的文件名稱,會拋出SuspiciousFileOperation 異常。

如果name命名的文件已存在,一個下劃線加上隨機7個數(shù)字或字母的字符串會添加到文件名稱的末尾,擴展名之前。

Changed in Django 1.7:

之前,下劃線和一位數(shù)字(比如"_1","_2",以及其他)會添加到文件名稱的末尾,直到目標目錄中發(fā)現(xià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ù)的文件名稱,它適用于目標儲存系統(tǒng)。

listdir(path)[source]

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

modified_time(name)[source]

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

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

通過提供的name打開文件。注意雖然返回的文件確保為File對象,但可能實際上是它的子類。在遠程文件儲存的情況下,這意味著讀寫操作會非常慢,所以警告一下。

path(name)[source]

本地文件系統(tǒng)的路徑,文件可以用Python標準的open()在里面打開。對于不能從本地文件系統(tǒng)訪問的儲存系統(tǒng),拋出NotImplementedError異常。

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

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

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

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

Changed in Django 1.8:

新增了max_length參數(shù)。

size(name)[source]

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

url(name)[source]

返回URL,通過它可以訪問到name所引用的文件。對于不支持通過URL訪問的儲存系統(tǒng),拋出NotImplementedError異常。

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

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

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

上一篇:高級教程下一篇:面向程序員