Объект File

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

Класс File

classFile ( 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 допускает те же значения, что и встроенная функция 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 ( Файл ) [источник]

Класс ContentFile наследуется от 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 ) [источник]

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() модели будет вызван после удаления файла.

Copyright ©2020 All rights reserved