Передача переменных на другой маршрут в Python Flask во время перенаправления - PullRequest
0 голосов
/ 05 марта 2020

У меня есть функция upload_file_to_s3, которая загружает файл в мое ведро s3. Когда я делаю метод POST, я хотел бы загрузить файл в s3, а также передать переменную (которая является моим именем файла для загруженного файла) на мой первый маршрут "/ home". Однако я не могу просто передать переменную в «redirect», верно?

Ниже приведена иллюстрация того, чего я пытаюсь достичь:

@app.route("/home")
def home(variable_filename):
    *some functions here using the <variable_filename>*

    return render_template('home.html')

@app.route("/upload", methods=['POST'])
def upload():
    if request.method == "POST":
        f = request.files['file']
        f.save(os.path.join(UPLOAD_FOLDER, f.filename))
        upload_file_to_s3(f"uploads/{f.filename}", BUCKET)

        variable_filename = f.filename

        return redirect("/home",variable_filename)

Ваша помощь очень ценится!

1 Ответ

1 голос
/ 05 марта 2020

Передайте переменную как часть URL. Обновите маршрут и функцию home, как показано ниже -

@app.route("/home/<string:variable_filename>")
def home(variable_filename):
    #*some functions here using the <variable_filename>*

    return render_template('home.html')

И дополнительно обновите оператор возврата функции загрузки, как показано ниже -

return redirect("/home/{}".format(variable_filename))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...