File
对象¶这个 django.core.files
模块及其子模块包含在Django中用于基本文件处理的内置类。
File
班¶这个 File
类是一个围绕Python的瘦包装器 file object 增加了一些特定的django。在内部,Django在需要表示文件时使用这个类。
File
对象具有以下属性和方法:
文件名,包括来自的相对路径 MEDIA_ROOT
.
文件的大小(字节)。
底层 file object 这门课结束了。
注意子类中的这个属性。
某些子类 File
包括 ContentFile
和 FieldFile
,可以将此属性替换为python以外的对象 file object . 在这些情况下,该属性本身可能是 File
子类(不一定是同一个子类)。尽可能使用子类本身的属性和方法,而不是子类的属性和方法 file
属性。
文件的读/写模式。
打开或重新打开该文件(这也会 File.seek(0)
)。这个 mode
参数允许的值与Python的内置值相同 open()
。 *args
和 **kwargs
在此之后传递 mode
添加到Python的内置 open()
。
重新打开文件时, mode
将覆盖文件最初打开时使用的任何模式; None
表示以原始模式重新打开。
它可以用作上下文管理器,例如 with file.open() as f:
.
对传球的支持 *args
和 **kwargs
已添加。
迭代生成给定大小的“块”的文件。 chunk_size
默认为64 KB。
这对于非常大的文件尤其有用,因为它允许将文件从磁盘上流下并避免将整个文件存储在内存中。
除了列出的方法外, File
显示其以下属性和方法 file
对象: encoding
, fileno
, flush
, isatty
, newlines
, read
, readinto
, readline
, readlines
, seek
, tell
, truncate
, write
, writelines
, readable()
, writable()
和 seekable()
.
ContentFile
班¶ImageFile
班¶任何 File
与对象关联的 Car.photo
,下面)也将有一些额外的方法:
使用提供的文件名和内容保存新文件。这不会替换现有文件,但会创建一个新文件并更新对象以指向该文件。如果 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
.
从模型实例中删除该文件并删除基础文件。如果 save
是 True
模型的 save()
删除文件后将调用方法。
12月 18, 2023