- XSS방어
- asp.net core Select
- 말줄임표시
- asp.net dropdownlist
- TempData
- javascript 유효성체크
- javascript 바코드스캔
- ViewData
- ASP.Net Core 404
- asp.net Select
- jquery 바코드생성
- 바코드 스캔하기
- XSS PHP
- 하드 마이그레이션
- ViewBag
- 타임피커
- Mac Oracle
- 파일업로드 체크
- SSD 복사
- javascript redirection
- jquery 바코드
- 강제이동
- javascript 바코드 생성
- 맥 오라클설치
- php 캐쉬제거
- 404에러페이지
- 하드 윈도우 복사
- django 엑셀불러오기
- 바코드 생성하기
- 파일업로드 유효성체크
웹개발자의 기지개
[Django] 세션변수 - 템플릿 View에서 세션 사용하기 request.session 본문
[Django] 세션변수 - 템플릿 View에서 세션 사용하기 request.session
http://portfolio.wonpaper.net 2022. 4. 24. 07:20세션 사용 설정하기
INSTALLED_APPS = [
...
'django.contrib.sessions',
....
MIDDLEWARE = [
...
'django.contrib.sessions.middleware.SessionMiddleware',
....
https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/Sessions
# Session object not directly modified, only data within the session. Session changes not saved!
request.session['my_car']['wheels'] = 'alloy'
# Set session as modified to force data updates/cookie to be saved.
request.session.modified = True
관련앱의 view.py 상에서는 아래와 같이
if not request.session.session_key:
cart_uid = request.session.create()
else:
cart_uid = request.session.session_key
위의 소스에서 request.session.session_key 는 str형의 유니크한 세션id값을 리턴해준다.
ex) s7j4bkdqge4afl3hbicl1tocp0la14cd
마치 php상에서 session_id() 값과 동일하다고 보면된다.
https://docs.djangoproject.com/en/4.0/topics/http/sessions/
# 세션 설정
request.session['m_id'] = "test1"
request.session['m_name'] = "이순신"
# 세션 불러오기1
m_id = request.session['m_id']
m_name = request.session['m_name']
# 세션 불러오기2
m_id = request.session.get('m_id', '')
m_name = request.session.get('m_name', '')
위에서 get함수 두번째 인자는 세션값이 없을때 default로 지정해주는 값이다.
# 세션값 삭제
del request.session['m_id']
request.session.flush()
보통의 경우 Templates 실제 파일내에서는 위와 같은 세션값을 이용할 수 없다.
그렇다면 이를 해결해보자.
settings.py 에서 아래의 소스를 추가하자.
1
2
3
|
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.request',
)
|
cs |
그리고, 이제는 templates 실제 html 에서
아래와 같이 세션 값을 직접 활용할 수 있다.
1
2
3
4
5
6
7
8
|
{% if not 'm_id' in request.session %}
<a href="/member/register">[회원가입]</a><br>
<a href="/member/login">[로그인]</a>
{% else %}
{{ m_name }} 님 어서오세요.
<br><br>
<a href="/member/logout">[로그아웃]</a>
{% endif %}
|
cs |
{{ request.session.m_name }} 님 어서오세요.
참고 1 : https://gauryan.tumblr.com/post/61847882548/template-session
참고 2 : https://blog.daum.net/hanabible/1172
'python > Django' 카테고리의 다른 글
[Django] ORM - Create, Update, Delete 문 (1:다, 다:다) Model 내에 ForeignKey 와 ManyToManyField (0) | 2022.05.01 |
---|---|
[Django] 초간단 사용자정의 Member 회원가입, 로그인, 로그아웃 만들기 (0) | 2022.04.25 |
[Django] PHP exit 와 같은 기능 - 디버깅 기법 (0) | 2022.04.24 |
[Django] ORM 참고사항 1 - get(), filter() (0) | 2022.04.23 |
[Django] 마이그레이션 삭제 (특정앱 부분 다시 마이그레이션) (0) | 2022.04.20 |