파이썬/flask

파이썬기초 flask flash 사용하기 (자바스크립트 alert)

개발자J군 2020. 6. 18. 12:49

서비스를 사용하면서 사용자에게 피드백을 주는 것은 무척 중요합니다.

간단히 회원가입을 예로보면 미입력칸이나 비밀번호 규정에 어긋날때는 (일정숫자이상 등) 자바스크립트로 처리가 가능합니다.

 

자바스크립트 회원가입 검증 예시▼

 

자바스크립트 기초 - submit, 회원가입, 검증

이름, 비밀번호, 이메일 등 미입력 항목이 있을 경우 체크하는 소스. 경고창(얼럿창 alert)을 띄웁니다. 오류 항목이 있을 경우 preventDefault(); 통해 전송(submit)하는 것을 막습니다. 연관글 자바스크�

pycoding.tistory.com

 

하지만 가입여부 체크, 아이디와 비밀번호 일치를 확인하기 위해서는 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]}}");  으로 작성해도 결과는 같습니다. 

 

반응형