Функция send_file
Функция send_file применяется внутри
функции-обработчика и отправляет клиенту
файл с диска. Первым параметром передаётся
путь к файлу. Вторым параметром можно
передать mimetype для указания
типа содержимого. Третьим параметром
as_attachment можно указать,
скачивать файл или отображать в браузере.
Параметр download_name задаёт имя
файла при скачивании.
Синтаксис
send_file(path, mimetype=None, as_attachment=False, download_name=None)
Пример
Давайте отдадим клиенту текстовый файл
'data.txt' с типом 'text/plain':
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/')
def index():
return send_file('data.txt', mimetype='text/plain')
Результат выполнения кода:
abcde
Пример
Давайте отдадим файл 'data.txt'
как вложение для скачивания с именем
'article.txt':
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/')
def index():
return send_file(
'data.txt',
as_attachment=True,
download_name='article.txt'
)
Результат выполнения кода:
"файл article.txt скачивается"
Пример
Давайте отдадим файл, путь к которому
построен через os.path.join
относительно текущей директории:
import os
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/')
def index():
path = os.path.join(app.root_path, 'data.txt')
return send_file(path, mimetype='text/plain')
Результат выполнения кода:
abcde
Смотрите также
-
функцию
send_from_directory,
которая безопасно отдаёт файл из директории -
функцию
secure_filename,
которая очищает имя файла от опасных символов