这个 File 对象

这个 django.core.files 模块及其子模块包含在Django中用于基本文件处理的内置类。

这个 File

class File(file_object, name=None)[源代码]

这个 File 类是一个围绕Python的瘦包装器 file object 增加了一些特定的django。在内部,Django在需要表示文件时使用这个类。

File 对象具有以下属性和方法:

name

文件名,包括来自的相对路径 MEDIA_ROOT .

size

文件的大小(字节)。

file

底层 file object 这门课结束了。

注意子类中的这个属性。

某些子类 File 包括 ContentFileFieldFile ,可以将此属性替换为python以外的对象 file object . 在这些情况下,该属性本身可能是 File 子类(不一定是同一个子类)。尽可能使用子类本身的属性和方法,而不是子类的属性和方法 file 属性。

mode

文件的读/写模式。

open(mode=None, *args, **kwargs)[源代码]

打开或重新打开该文件(这也会 File.seek(0) )。这个 mode 参数允许的值与Python的内置值相同 open()*args**kwargs 在此之后传递 mode 添加到Python的内置 open()

重新打开文件时, mode 将覆盖文件最初打开时使用的任何模式; None 表示以原始模式重新打开。

它可以用作上下文管理器,例如 with file.open() as f: .

Changed in Django 5.0:

对传球的支持 *args**kwargs 已添加。

__iter__()[源代码]

迭代文件,一次生成一行。

chunks(chunk_size=None)[源代码]

迭代生成给定大小的“块”的文件。 chunk_size 默认为64 KB。

这对于非常大的文件尤其有用,因为它允许将文件从磁盘上流下并避免将整个文件存储在内存中。

multiple_chunks(chunk_size=None)[源代码]

返回 True 如果文件足够大,需要多个块来访问其所有内容,请给出 chunk_size .

close()[源代码]

关闭文件。

除了列出的方法外, File 显示其以下属性和方法 file 对象: encodingfilenoflushisattynewlinesreadreadintoreadlinereadlinesseektelltruncatewritewritelinesreadable()writable()seekable() .

这个 ContentFile

class ContentFile(content, name=None)[源代码]

这个 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

class ImageFile(file_object, name=None)[源代码]

Django为图像提供了一个内置类。 django.core.files.images.ImageFile 继承的所有属性和方法 File ,并另外提供以下内容:

width

图像的宽度(像素)。

height

图像的高度(像素)。

附加到对象的文件的附加方法

任何 File 与对象关联的 Car.photo ,下面)也将有一些额外的方法:

File.save(name, content, save=True)

使用提供的文件名和内容保存新文件。这不会替换现有文件,但会创建一个新文件并更新对象以指向该文件。如果 saveTrue ,模特的 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)

从模型实例中删除该文件并删除基础文件。如果 saveTrue 模型的 save() 删除文件后将调用方法。