File オブジェクトLink to this heading
django.core.files モジュールとそのサブモジュールでは、Django の基本的なファイルハンドリングに関するビルトインクラスが定義されています。
File クラスLink to this heading
- class File(file_object, name=None)Link to this definition
Fileクラスは、Python の file object に Django 特有の追加機能を付け加えた薄いラッパーです。内部的でファイルを表現する必要がある場合には、Django はこのクラスを使います。Fileオブジェクトには次の属性とメソッドを持ちます。- nameLink to this definition
MEDIA_ROOTからの相対パスを含むファイル名です。
- sizeLink to this definition
バイト単位で表されたファイルサイズ。
- fileLink to this definition
このクラスがラッピングしている、素の file object クラスです。
- modeLink to this definition
ファイルの読み込み/書き込みのモードです。
- open(mode=None, *args, **kwargs)Link to this definition
ファイルを開くか再オープンします(これは
File.seek(0)も行います)。mode引数は、Python の組み込み関数open()と同じ値を許可します。*argsと**kwargsは、modeの後に、Python の組み込み関数open()に渡されます。ファイルを再オープンする際、
modeはファイルが元々開かれていたモードを上書きします。Noneはオリジナルのモードで再オープンすることを意味します。コンテキストマネージャとして使用できます。たとえば、
with file.open() as f:のようにです。
- __iter__()Link to this definition
ファイルをイテレートして、1行ずつ返します。
- chunks(chunk_size=None)Link to this definition
ファイルをイテレートし、指定されたサイズの「チャンク」を生成します。
chunk_sizeのデフォルトは 64 KB です。これは非常に大きなファイルに特に便利であり、ディスクからストリーミングしてメモリ全体にファイルを保存することを避けることができます。
- multiple_chunks(chunk_size=None)Link to this definition
chunk_size(一括サイズ) で指定されたファイルの全内容にアクセスするために複数のチャンクが必要な場合はTrueを返します。
- close()Link to this definition
ファイルを閉じてください。
リストされたメソッドに加えて、
Fileは、そのfileオブジェクトの以下の属性とメソッドを公開しています:encoding,fileno,flush,isatty,newlines,read,readinto,readline,readlines,seek,tell,truncate,write,writelines,readable(),writable(), およびseekable()。
ContentFile クラスLink to this heading
- class ContentFile(content, name=None)Link to this definition
ContentFileクラスはFileを継承していますが、Fileとは異なり、実際のファイルではなく文字列コンテンツ(バイトもサポート)で操作します。例えば:from django.core.files.base import ContentFile f1 = ContentFile("esta frase está en español") f2 = ContentFile(b"these are bytes")
ImageFile クラスLink to this heading
- class ImageFile(file_object, name=None)Link to this definition
Django には画像専用の組み込みクラスがあります。
django.core.files.images.ImageFileはFileのすべての属性とメソッドを継承し、さらに次のものを提供します:- widthLink to this definition
画像の幅 (ピクセル単位)。
- heightLink to this definition
画像の高さ(ピクセル単位)。
オブジェクトに添付されたファイルに関する追加メソッドLink to this heading
オブジェクト(以下の Car.photo のように)に関連付けられた File には、いくつかの追加メソッドも用意されています。
- File.save(name, content, save=True)Link to this definition
提供されたファイル名と内容で新しいファイルを保存します。これは既存のファイルを置き換えるものではありませんが、新しいファイルを作成し、オブジェクトがそれを指すように更新します。
saveがTrueの場合、ファイルが保存されたらモデルのsave()メソッドが一度呼び出されます。つまり、次の二行です:>>> car.photo.save("myphoto.jpg", content, save=False) >>> car.save()これは以下と同等です:
>>> car.photo.save("myphoto.jpg", content, save=True)content引数は、FileまたはFileのサブクラス(例えば、ContentFileなど)のインスタンスでなければなりません。
- File.delete(save=True)Link to this definition
モデルインスタンスからファイルを削除し、基になるファイルも削除します。
saveがTrueの場合、ファイルが削除された後にモデルのsave()メソッドが一度呼び出されます。