Лучший способ создать / вернуть файл xlsx Flask? - PullRequest
0 голосов
/ 28 марта 2020

Я застрял на проблеме, как организовать код / ​​правильный способ получить файл xlsx в качестве вывода в приложении flask. У меня есть файл function.py, где сейчас генерируется файл xlsx. Смысл в том, что приложение flask получает некоторые настройки в формате json, эти настройки обрабатываются функцией, которая должна возвращать xlsx (?) В приложение.

Функция выполняет некоторые вычисления в зависимости от настроек.

Файл имеет следующую структуру:

def function (settings):  
    settings=settings  
    df = pd.read_csv(settings['df'])  
    from pandas import ExcelWriter  
    writer = ExcelWriter('file.xlsx')  
    if settings[somefeature1]==1:  
        f1=dosmth.to_excel(writer, "feature 1")  
    if settings[somefeature2]==1:  
        f2=dosmth.to_excel(writer, "feature 2")  
    ...
    writer.save()

Но если файл уже сгенерирован в функции, что я должен передать flask? Как должна выглядеть тогда функция приложения flask (особенно, если я хочу вернуть xlsx как json)?

@app.route('/Function', methods = ['POST'])  
def Function():  
    settings = request.get_json(force = True)  
    return(function(settings))    #???  

1 Ответ

2 голосов
/ 28 марта 2020

Вы никогда не должны забывать, что flask - это платформа для создания веб-приложений, веб-приложение - это часть программного обеспечения, которая получает веб-запрос и генерирует веб-ответ .

Для простоты: ваша функция flask должна возвращать что-то, что сможет обработать обычный веб-браузер. В этом случае ваш ответ должен вернуть файл, а также некоторые метаданные, чтобы сообщить потенциальному получателю, что находится внутри ответа и как с ним работать.

Я думаю, что-то подобное может сработать:

return send_file(filename, mimetype='application/vnd.ms-excel') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...