FileОбъект

django.core.filesМодуль и его подмодули содержат встроенные классы для основной обработки файлов в Django.

FileКласс

classFile ( file_object , name = None ) [источник]

FileКласс представляет собой тонкую оболочку вокруг Python объекта файла с некоторыми Джанго специфическими дополнениями. Внутри Django использует этот класс, когда ему нужно представить файл.

File объекты имеют следующие атрибуты и методы:

name

Имя файла, включая относительный путь от MEDIA_ROOT.

size

Размер файла в байтах.

file

Базовый файловый объект, который обертывает этот класс.

Будьте осторожны с этим атрибутом в подклассах.

Некоторые подклассы File, включая ContentFileи FieldFile, могут заменять этот атрибут объектом, отличным от файлового объекта Python . В этих случаях этот атрибут может сам быть File подклассом (и не обязательно тем же подклассом). По возможности используйте атрибуты и методы самого подкласса, а не fileатрибуты подкласса .

mode

Режим чтения / записи для файла.

open( mode = None ) [источник]

Откройте или повторно откройте файл (что тоже происходит File.seek(0)). modeАргумент позволяет одни и те же значения, что и Python встроенный open().

При повторном открытии файла 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Класс

classContentFile ( 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Класс

classImageFile ( file_object , name = None ) [источник]

Django предоставляет встроенный класс специально для изображений. django.core.files.images.ImageFileнаследует все атрибуты и методы Fileи дополнительно предоставляет следующее:

width

Ширина изображения в пикселях.

height

Высота изображения в пикселях.

Дополнительные методы для файлов, прикрепленных к объектам

Все, Fileчто связано с объектом (как, например Car.photo, ниже), также будет иметь несколько дополнительных методов:

File.save( Имя , содержание , сохранить = True )

Сохраняет новый файл с указанным именем и содержимым. Это не заменит существующий файл, но создаст новый файл и обновит объект, чтобы он указывал на него. Если 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()будет вызываться после удаления файла.

Copyright ©2021 All rights reserved