Spec-Zone.ru › Django 1.8

Объект файла

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

Класс File

class File(file_object) [source]

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

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

name

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

size

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

file

Основной объект файла, который оборачивает этот класс.

mode

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

open(mode=None) [source]

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

При повторном открытии файла mode переопределит любой режим, в котором файл был первоначально открыт; None означает повторное открытие с исходным режимом.

read(num_bytes=None)

Считывает содержимое из файла. Необязательный size — это количество байтов для считывания; если не указано, файл будет прочитан до конца.

__iter__() [source]

Итерируется по файлу, возвращая по одной строке за раз.

File теперь использует универсальные новые строки. Следующие символы распознаются как конец строки: конвенция Unix '\n', конвенция Windows '\r\n', и старая конвенция Macintosh '\r'.

chunks(chunk_size=None) [source]

Итерируется по файлу, возвращая «куски» заданного размера. chunk_size по умолчанию составляет 64 КБ.

Это особенно полезно для очень больших файлов, поскольку позволяет их потоковому считыванию с диска и избегает хранения всего файла в памяти.

multiple_chunks(chunk_size=None) [source]

Возвращает True , если файл достаточно большой, чтобы потребовалось несколько кусков для доступа ко всему его содержимому, с учётом chunk_size.

write(content)

Записывает указанную строку содержимого в файл. В зависимости от системы хранения, которая стоит за кулисами, это содержимое может не быть полностью сохранённым до тех пор, пока не будет вызван метод close() для файла.

close() [source]

Закрыть файл.

Помимо перечисленных методов, File раскрывает следующие атрибуты и методы своего file объекта: encoding, fileno, flush, isatty, newlines, read, readinto, readlines, seek, softspace, tell, truncate, writelines, xreadlines.

Класс ContentFile

class ContentFile(File) [source]

Класс ContentFile наследуется от File, но в отличие от File, он работает со строковым содержимым (также поддерживаются байты), а не с реальным файлом. Например:

from __future__ import unicode_literals
from django.core.files.base import ContentFile

f1 = ContentFile("esta sentencia está en español")
f2 = ContentFile(b"these are bytes")

Класс ImageFile

class ImageFile(file_object) [source]

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

width

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

height

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

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

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

File.save(name, content, 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(save=True)

Удаляет файл из экземпляра модели и удаляет базовый файл. Если save равно True, метод save() модели будет вызван после удаления файла.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.8/ref/files/file/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API