서비스를 사용하면서 사용자에게 피드백을 주는 것은 무척 중요합니다.
간단히 회원가입을 예로보면 미입력칸이나 비밀번호 규정에 어긋날때는 (일정숫자이상 등) 자바스크립트로 처리가 가능합니다.
자바스크립트 회원가입 검증 예시▼▼
하지만 가입여부 체크, 아이디와 비밀번호 일치를 확인하기 위해서는 db를 조회해야 합니다. 이때 오류사항을 html에 넘겨줄 수 있는 기능이 플라스크의 flash입니다.
저도 아직 초보인지라 .. 간단한 flash 사용법을 알려드립니다.
1. flash를 임포트합니다.
from flask import flash
2.시크릿키를 설정합니다.
app.config["SECRET_KEY"] = "ABCD"
사실저도 왜 시크릿키를 설정해야하는지는 자세히 알지는 못합니다. 다만 시크릿키는 자유롭게 설정할 수 있으며, 유출되지 않도록 조심해야 한다고 합니다..
3.flash("메세지내용")
flash("중복된 이메일 주소입니다.")
return render_template("join.html")
회원가입(join.html)에 리턴값을 넘겨줄때 메시지를 적습니다. 이 과정전에 db에서 가입여부를 체크하는 구문이 필요하겠죠?
4.join.html 수정
{%with messages = get_flashed_messages()%}
{%if messages %}
<script type="text/javascript">
alert("{{messages[-1]}}");
</script>
{%endif%}
{%endwith%}
get_flashed_messages() 구문을 통해 해당 메시지를 받고 messages 변수에 저장합니다.
여기서 해당메시지는 바로 flash("중복된 이메일 주소입니다.") 이부분입니다.
messages에 내용이 있을 경우 얼럿창을 통해 넘어온 메시지를 띄웁니다. messages는 리스트 형태로 넘어옵니다.
위의 경우에서 alert("{{messages[0]}}"); 으로 작성해도 결과는 같습니다.
반응형
'파이썬 > flask' 카테고리의 다른 글
flask macro 콜러함수 caller() (0) | 2020.10.19 |
---|---|
flask 내 윈도우 pc에서 배포하기 (ngrok) (1) | 2020.10.09 |
flask 데코레이터 (0) | 2020.10.05 |
파이썬 flask jinja2(진자)에서 len, enumerate ,주석 사용하기 (0) | 2020.10.05 |