Вы можете выполнить функцию JavaScript под нагрузкой и проверить функцию на наличие условий. Вы можете повлиять на результат этой проверки, изменив условие с помощью Python. Если вы используете функцию render_template для Flask, вам не нужно писать код HTML в файле Python. Для лучшей читабельности я использую эту функциональность, но вы всегда можете вставить код HTML в свой код Python, как вы делали раньше.
Ваш шаблон HTML, например, с именем upload.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Upload new File</title>
</head>
<body onload="flashMessage()">
<script>
function flashMessage() {
if ("{{ flash_message }}" == "True") {
alert("[YOUR_MESSAGE_HERE]");
}
}
</script>
<h1>Upload new File</h1>
<form method=post enctype=multipart/form-data>
<input type=file name=file>
<input type=submit value=Upload>
</form>
</body>
</html>
Ваш Python код:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
#verify if the file is valid
#here invoke js to do something (for example flash("test"))
return render_template('upload.html', flash_message="True")
return render_template('upload.html', flash_message="False")
Итак, строка условия в вашем файле HTML будет преобразована в
if ("True" == "True")
или
if ("False" == "True")
в зависимости от того, хотите вы показать сообщение fla sh или нет.