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

Функция send_from_directory

Функция send_from_directory применяется для безопасной отдачи файла из заданной папки. Первым параметром передаётся директория, вторым - имя файла внутри неё. Функция защищает от выхода за пределы каталога, что делает её безопасной альтернативой ручному склеиванию путей.

Дополнительно можно передать именованный параметр as_attachment, чтобы браузер скачивал файл, а не отображал его, и параметр download_name, задающий имя файла при скачивании.

Синтаксис

send_from_directory(directory, path, **kwargs)

Пример

Давайте отдадим файл 'article.txt' из папки 'files':

from flask import Flask, send_from_directory app = Flask(__name__) @app.route('/file') def get_file(): return send_from_directory('files', 'article.txt')

Результат выполнения кода для адреса /file при наличии файла:

"содержимое файла article.txt"

Пример

Давайте принудительно скачаем файл, передав параметр as_attachment:

from flask import Flask, send_from_directory app = Flask(__name__) @app.route('/download') def download_file(): return send_from_directory( 'files', 'article.txt', as_attachment=True )

Результат выполнения кода для адреса /download - браузер скачивает файл 'article.txt'.

Пример

Давайте зададим своё имя файла при скачивании через параметр download_name:

from flask import Flask, send_from_directory app = Flask(__name__) @app.route('/download') def download_file(): return send_from_directory( 'files', 'article.txt', as_attachment=True, download_name='hello.txt' )

Результат выполнения кода для адреса /download - браузер скачивает файл под именем 'hello.txt'.

Пример

Давайте отдадим файл, имя которого приходит из URL:

from flask import Flask, send_from_directory app = Flask(__name__) @app.route('/files/<name>') def get_named_file(name): return send_from_directory('files', name)

Результат выполнения кода для адреса /files/article.txt:

"содержимое файла article.txt"

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

  • функцию send_file,
    которая отдаёт файл по прямому пути
  • функцию secure_filename,
    которая очищает имя файла от опасных символов
  • функцию send_from_directory,
    которая отдаёт файл из заданной директории
  • раздел static,
    посвящённый отдаче статических файлов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить