РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
634 of 818 menu

Класс FileSystemStorage

Класс FileSystemStorage реализует базовое хранилище для работы с файлами в файловой системе. Он наследуется от класса Storage и предоставляет методы для сохранения, открытия, удаления, проверки существования и получения информации о файлах. При инициализации можно указать корневую директорию, базовый URL и параметры создания файлов.

Синтаксис

from django.core.files.storage import FileSystemStorage storage = FileSystemStorage( location=None, base_url=None, file_permissions_mode=None, directory_permissions_mode=None )

Параметры класса:

# location - путь к корневой директории (по умолчанию MEDIA_ROOT) # base_url - базовый URL для доступа к файлам (по умолчанию MEDIA_URL) # file_permissions_mode - права доступа для создаваемых файлов (по умолчанию None) # directory_permissions_mode - права доступа для создаваемых директорий (по умолчанию None)

Пример

Создадим экземпляр хранилища с указанием пользовательской директории и сохраним файл:

from django.core.files.storage import FileSystemStorage from django.core.files.base import ContentFile # Создаем хранилище для папки 'uploads' fs = FileSystemStorage(location='uploads') # Сохраняем файл с содержимым file_content = ContentFile(b'Hello, World!') saved_name = fs.save('hello.txt', file_content) print(saved_name)

Результат выполнения кода:

"hello.txt"

Пример

Откроем сохраненный файл и прочитаем его содержимое:

from django.core.files.storage import FileSystemStorage fs = FileSystemStorage(location='uploads') # Открываем файл для чтения with fs.open('hello.txt', 'r') as file: content = file.read() print(content)

Результат выполнения кода:

"Hello, World!"

Пример

Проверим существование файла и удалим его:

from django.core.files.storage import FileSystemStorage fs = FileSystemStorage(location='uploads') # Проверяем существование файла if fs.exists('hello.txt'): # Удаляем файл fs.delete('hello.txt') print('File deleted successfully') else: print('File not found')

Результат выполнения кода:

"File deleted successfully"

Пример

Получим список файлов в директории и информацию о размере:

from django.core.files.storage import FileSystemStorage fs = FileSystemStorage(location='uploads') # Получаем список всех файлов files = fs.listdir('') print('Files:', files) # Получаем размер файла if files[1]: file_name = files[1][0] file_size = fs.size(file_name) print(f'File: {file_name}, Size: {file_size} bytes')

Результат выполнения кода:

"Files: ([], ['hello.txt', 'example.pdf'])" "File: hello.txt, Size: 13 bytes"

Пример

Сгенерируем URL для доступа к файлу через веб-сервер:

from django.core.files.storage import FileSystemStorage fs = FileSystemStorage(location='uploads', base_url='/media/') # Получаем URL для файла file_url = fs.url('hello.txt') print(file_url)

Результат выполнения кода:

"/media/hello.txt"

Смотрите также

  • класс Storage,
    базовый класс для всех хранилищ в Django
  • метод save,
    сохраняет файл в хранилище
  • метод open,
    открывает файл для чтения или записи
  • метод delete,
    удаляет файл из хранилища
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить