Python Klein - Как вернуть файл Excel в виде вложения? - PullRequest
0 голосов
/ 23 января 2020

Я использую Python Кляйн для моего маленького API. Может вернуть CSV в качестве ответа, но возможно ли вернуть файл Excel? Flask имеет этот функционал, но как насчет Klein?

Задача:

Есть файл Excel на жестком диске и хотите вернуть его как вложение, чтобы пользователь мог его скачать через вызов API.

Пример: С CSV-файлом все работает хорошо, как

   @app.route('/download/',  branch=True, methods=['GET'])
   def download(request):
       request.setHeader("Access-Control-Allow-Origin", "*")
       request.setHeader('Content-Type', 'text/csv')
       request.setHeader('Content-Disposition', 'attachment; filename=test.csv')
       file = open('test.csv', "r")
       csv_data = file.read() 
       return csv_data

Но как быть с файлом Excel?

1 Ответ

0 голосов
/ 23 января 2020

Найденное решение:

from twisted.web.static import File
from klein import Klein
app = Klein()
@app.route('/', branch=True)
def pg_index(request):
    request.setHeader("Access-Control-Allow-Origin", "*")
    request.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
    request.setHeader('Content-Disposition', 'attachment; filename=test.xlsx'.format(list_id))
    return File('./test.xlsx')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...