반응형
Python Flash
Flash 사용방법
경고나 알람을 팝업창 형식으로 알려주기위해 flask에서 flash 라는 모듈을 사용해서 간단하게 알려준다.
1. python flask (Back end) 에서 flash 모듈을 import 한다.
2. secret_key를 선언하여 html (front end)와 flask 사이 flash 메세지 전달을 암호화 해준다.
3. html에서 jinja2 를 사용하여서 flask로 부터 메세지가 있다면 팝업으로 알람을 알려(alert)준다.
예제와 결과로 이해해보기
코드 - flash.py>>
from flask import Flask, request, render_template, flash, jsonify
app = Flask(__name__)
app.secret_key = '사용자지정비밀번호'
@app.route("/login", methods=["GET", "POST"])
def test():
if request.method == "POST":
id = request.form.get("id")
pw = request.form.get("pw")
if id == "":
flash("Please Input ID")
return render_template("login.html")
elif pw == "":
flash("Please Input PW")
return render_template("login.html")
else:
return jsonify({"Login": "Completed"})
else:
return render_template("login.html")
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True, port=9999)
코드 - login.html>>
{% with messages = get_flashed_messages() %}
{% if messages %}
<script>
alert("{{messages[-1]}}")
</script>
{% endif %}
{% endwith %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document1</title>
</head>
<body>
<form action="/login" method="post">
<p>ID : <input type="text" name="id" /></p>
<p>PW : <input type="password" name="pw" /></p>
<p><input type="submit" value="submit" /></p>
</form>
</body>
</html>
결과화면>>
주석>>
앞서 설명한것과 같이 python에서 flash 를 import 하였다. 그리고 보내고 싶은 메세지는 flash에 넣어서 보냈다.
app.secret_key 설정을 통해 비밀 번호를 설정하여 flash 메세지를 주고 받게 하였다.
그리고 html에서는 jinja2 문법을 사용하여 flask에서 보낸 flash 메세지를 받아서 해당 내용이 있을 경우 팝업창으로 보이게 하였다.
반응형
'파이썬(Python) > Flask' 카테고리의 다른 글
파이썬 blueprint 란? 간단한 예제로 이해해보기(flask, python) (2) | 2021.05.24 |
---|---|
파이썬 before_first_request, before_request, after_request 함수 쉬운 예제로 이해하기 (0) | 2021.05.21 |
make_response 함수란? 예제를 통한 사용 방법 학습(flask, python) (0) | 2021.05.12 |
Jinja2 조건문, 반복문 예제로 익혀보기 (if문, for문, flask) (0) | 2021.05.07 |
파이썬 flask에서 render_template 함수 예제로 이해해보기 (0) | 2021.05.04 |