#python #flask
Вопрос:
Я использую python flask для создания инструмента, в котором ppl может загружать файлы, а затем эти файлы разбиваются на несколько файлов на основе некоторых критериев. Я нахожусь в точке, где файл может быть загружен и разделен, и хочу вернуться к пользователям.
Мой скрипт просматривает список, в данном случае список содержит [‘1′,’2’,’3] и сохраняет три файла: файл_1.csv, файл_2.csv и файл_3.csv.
Проблема, с которой я столкнулся, заключается в том, как вернуть несколько (в текущем случае три, но это число может измениться) обратно пользователю.
С моим текущим кодом см. Ниже (для меня в …. вернуть перенаправление…), я получаю только 1 файл (файл_1.csv), но ожидаю все три, один за другим.
Кто-нибудь может заметить мою ошибку? 🙂
for i in rank_list:
new = df[df["Rank"] == i]
new.to_csv(DOWNLOAD_DIRECTORY '/file_' str(round(i)) '.csv')
time.sleep(3)
return redirect('/download/file_' str(round(i)) '.csv')
@app.route('/download/<path:path>',methods = ['GET','POST'])
def get_files(path):
try:
return send_from_directory(DOWNLOAD_DIRECTORY, path, as_attachment=True)
except FileNotFoundError:
abort(404)
Комментарии:
1. Пожалуйста, проверьте свой код. И добавьте некоторый контекст о коде колбы. Похоже, что Flask используется для работы с HTML — формой и извлекает файлы из запроса. файлы и ответы HTML-страница, содержащая несколько обработанных файлов : правильно ? С помощью send_from_directory он отправляет 1 и только 1 файл. Если вы хотите вернуть несколько файлов, вы можете предоставить файл zip/tar/другой архив. Или же вы можете предоставить HTML-страницу со ссылками для загрузки каждого файла.
2. хм, хорошо, подумал, что это может быть немного проще, но да, можно создать html с файлами 🙂
Ответ №1:
У вас есть ваша return
команда в цикле for. Проблема в том, что это return
может произойти только один раз. Если вы хотите вернуть несколько значений, то вам нужно поместить их в список, вернуть список, а затем обработать список (перебрать их) на переднем конце