Объект File
¶
Модуль django.core.files
и его подмодули содержат встроенные классы для базового управления файлами в Django.
Класс File
¶
-
class
File
( file_object ) [источник] ¶ Класс
File
представляет собой легкую оболочку вокруг файлового объекта Python с некоторыми специфическими для Django дополнениями. Внутри Django использует этот класс, когда ему нужно представить файл.У объектов
File
есть следующие атрибуты и методы:-
name
¶ Имя файла, включая относительный путь настройки
MEDIA_ROOT
.
-
size
¶ Размер файла в байтах.
-
file
¶ Объектный файл , что этот класс оборачивает.
Будьте осторожны с этим атрибутом в подклассах.
Некоторые подклассы
File
, включаяContentFile
иFieldFile
, могут заменять этот атрибут на объект, отличный от файлового объекта Python. В этих случаях этот атрибут может сам быть подклассомFile
(и обязательно тем же подклассом). По возможности используйте атрибуты и методы самого подкласса, а не атрибутыfile
подклассов.
-
mode
¶ Режим чтения / записи файла.
-
open
( mode = None ) [источник] ¶ Откройте или повторно откройте файл (и сбросьте его указатель на
File.seek(0)
). Параметрmode
допускает те же значения, что и встроенная функция Pythonopen()
.При повторном открытии файла
mode
отменяет режим, в котором файл был первоначально открыт;None
означает, что для повторного открытия следует использовать исходный режим.Вы можете использовать его как менеджер контекста, например. ,
with file.open() as f:
-
__iter__
() [источник] ¶ Читает файл итеративно, возвращая строки одну за другой.
-
chunks
( chunk_size = None ) [источник] ¶ Читает файл итеративно, возвращая куски указанного размера. По умолчанию
chunk_size
- 64 КБ.Это особенно полезно для больших файлов, поскольку позволяет передавать их с диска в потоковом режиме без необходимости хранить весь файл в памяти.
-
multiple_chunks
( chunk_size = None ) [источник] ¶ Возвращает
True
, требует ли размер файла разбиения на несколько блоков для чтения всего файла в зависимости от размераchunk_size
.
-
close
() [источник] ¶ Закройте файл.
В дополнение к методам , упомянутым,
File
предоставляет следующие атрибуты и методы объектаfile
:encoding
,fileno
,flush
,isatty
,newlines
,read
,readinto
,readline
,readlines
,seek
,tell
,truncate
,write
,writelines
,readable()
,writable()
иseekable()
.-
Класс ContentFile
¶
-
class
ContentFile
( Файл ) [источник] ¶ Класс
ContentFile
наследуется от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 ) [источник] ¶ Django предоставляет встроенный класс специально для изображений.
django.core.files.images.ImageFile
наследует все атрибуты и методы отFile
и дополнительно предлагает следующее:-
width
¶ Ширина изображения в пикселях.
-
height
¶ Высота изображения в пикселях.
-
Дополнительные методы для файлов, связанных с объектами ¶
Любой файл, File
связанный с объектом (как показано Car.photo
ниже), также имеет несколько дополнительных методов:
-
File.
save
( имя , содержание , сохранить = Истина ) ¶ Сохраняет новый файл с указанным именем и содержимым. Это не перезапишет существующий файл, но будет создан новый файл, и объект будет обновлен, чтобы указывать на этот файл. Если
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
( сохранить = True ) ¶ Удаляет файл из экземпляра модели и удаляет затронутый файл. Если
save
равноTrue
, методsave()
модели будет вызван после удаления файла.