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: .
迭代生成给定大小的“块”的文件。 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() 删除文件后将调用方法。
5月 28, 2025