티스토리 뷰
로그인 페이지나 게시글 작성 페이지 등을 구현할 때, 사용자가 자신의 활동이 실패했는지, 성공했는지, 실패했다면
왜 실패했는지 등을 알 수 있도록 메시지나 알람을 띄워줘야 합니다. Frontend 단에서 javascript로 alert 창을 이용하여
구현할 수도 있지만 Django에서는 이를 좀 더 쉽게 구현할 수 있는 프레임워크를 제공합니다.
바로 Messages Framework
입니다.
1. Messages Framework
: 쿠키 및 세션 기반의 1회성 메시지를 담는 용도
- 메시지를 하나의 HttpRequest 인스턴스에 임시로 저장하고 바로 다음 request에 표시됨
- 1회 노출되고 해당 페이지를 reload하면 사라짐
Message class 속성
message
: 실제 메시지level
: 메시지 레벨을 나타내는 정수tags
: 메시지 레벨을 나타내는 문자열 조합
Django는 기본적으로 settings.py에 messages framework를 사용할 수 있도록 설정하고 있습니다.
또한 settings.py 의 TEMPLATES 에서 messages 를 이미 렌더링 하고 있기 때문에 뷰에서 message를 템플릿으로
따로 넘기지 않아도 바로 사용할 수 있습니다.
2. Messages Levels
메시지에는 레벨이 존재합니다. 메시지 레벨을 사용하면 메시지를 유형별로 그룹화하여 뷰나 템플릿에서 다르게
필터링하거나 표시 할 수 있습니다. Django messages의 레벨은 다음과 같습니다.
- DEBUG: 개발 관련 메시지(default로 메시지를 남겨도 무시됨)
- INFO: 사용자를위한 정보 메시지
- SUCCESS
- WARNING
- ERROR
3. Messages Tags
메시지 태그는 메시지 레벨을 나타내는 추가적인 문자열 데이터입니다. 일반적으로 템플릿에서 메시지 유형에 따라
메시지 스타일을 정의하기 위한 CSS 클래스로 사용됩니다. default로 각 레벨의 소문자 버전의 문자열로 태그가 설정되
어있습니다. 메시지 태그를 변경하는 방법은 이곳을 참조해주세요.
- DEBUG: debug
- INFO: info
- SUCCESS: success
- WARNING: warning
- ERROR: error
4. Messages 추가하기
from django.contrib import messages
#원래 방법
messages.add_message(request, messages.INFO, 'Hello world.')
#축약된 방법
messages.info(request, 'Three credits remain in your account.')
5. Messages 띄우기
{% if messages %}
<div>
{% for message in messages %}
{{ message.tags }}! {{ message.message }}
{% endfor %}
</div>
{% endif %}
참고 자료
'Django' 카테고리의 다른 글
[Django Basic 05] URLconf 2계층으로 나누기 (0) | 2020.01.23 |
---|---|
[Django App 2-3] settings.py에서 MySQL 서버 연결 정보 분리하기 (0) | 2020.01.19 |
[과제] 디케아 애플리케이션 개발 (0) | 2020.01.16 |
[issue #002] django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)") (0) | 2020.01.09 |
[issue #001] mysqlclient가 설치되지 않을 때 (0) | 2020.01.09 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 서점 어플리케이션
- Django 댓글
- Django 비밀번호 수정
- MySQL
- java
- Django 팔로우
- Django
- Django User
- Django 검색
- 북마크 어플리케이션
- Django 인스타그램
- 장고
- Django 해시태그
- Django 컬렉션
- Django 북마크
- Django 로그인
- Django Instagram
- Django 회원 정보 수정
- Django application
- Django 회원가입
- 파이썬
- Django 업로드
- python
- Redis
- Django 로그아웃
- Django 좋아요
- query parameter
- Redis Cache
- Django 프로젝트 생성
- Django 어플리케이션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함