Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 이용자블럭
- 유튜브주소
- Python
- 팔로우팔로워
- 팔로우기획
- fakesession
- replyschema
- gototop
- Block
- pagenotfound
- 댓글설계
- block_user_process
- 제일상단으로
- 차단프로세스
- celery # redis #django #장고 #python #파이썬
- 가짜 세션
- url설계
- 파이썬
- blockuser
- 데이타타입
- 반응형이미지
- 로그인테스트
- 앱생성방법
- logintest
- 차단시프로세스
- follow 기획
- 영문과숫자가혼합된중복되지않는주소
- django
- Bootstrap
- 장고
Archives
- Today
- Total
코딩이야기
Django에서 실제 세션을 사용하지 않고 가짜 세션을 구현하는 방법 본문
Django에서 실제 세션을 사용하지 않고 가짜 세션을 구현하는 방법은 여러 가지가 있습니다. 가장 간단한 방법은 Django의 뷰 함수나 미들웨어에서 임시 데이터를 사용하여 세션처럼 동작하도록 만드는 것입니다. 여기서는 쿠키를 사용하여 가짜 세션을 구현하는 방법을 예시로 설명하겠습니다.
1. 설정 파일 수정
먼저 Django 프로젝트의 설정 파일인 settings.py를 수정하여 세션을 비활성화하거나 최소한으로 사용하도록 설정합니다.
# settings.py
# 세션 엔진 설정
SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies' # 서명된 쿠키 기반 세션 사용
# 세션 쿠키 설정
SESSION_COOKIE_NAME = 'fake_sessionid'
SESSION_COOKIE_AGE = 1209600 # 2주 (기본값)
SESSION_COOKIE_SECURE = False # HTTPS에서만 작동하지 않도록 설정 (개발 중인 경우)
SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 브라우저 닫을 때 세션 만료 안 되도록 설정
2. 뷰 함수에서 가짜 세션 사용
뷰 함수에서 쿠키를 사용하여 가짜 세션 데이터를 설정하고 읽는 예시입니다.
# views.py
from django.shortcuts import render, redirect
from django.http import HttpResponse
def set_fake_session(request):
response = HttpResponse("Fake session set!")
response.set_cookie('fake_session_key', 'fake_session_value', max_age=3600) # 1시간 동안 유효
return response
def get_fake_session(request):
fake_session_value = request.COOKIES.get('fake_session_key')
if fake_session_value:
return HttpResponse(f"Fake session value: {fake_session_value}")
else:
return HttpResponse("No fake session found.")
def delete_fake_session(request):
response = HttpResponse("Fake session deleted!")
response.delete_cookie('fake_session_key')
return response
3. URL 설정
urls.py 파일을 수정하여 뷰 함수를 URL에 매핑합니다.
# urls.py
from django.contrib import admin
from django.urls import path
from myapp import views # 뷰 함수를 import합니다.
urlpatterns = [
path('admin/', admin.site.urls),
path('set_fake_session/', views.set_fake_session, name='set_fake_session'),
path('get_fake_session/', views.get_fake_session, name='get_fake_session'),
path('delete_fake_session/', views.delete_fake_session, name='delete_fake_session'),
]
4. 테스트
서버를 실행하고 브라우저에서 URL에 접속하여 테스트합니다.
python manage.py runserver
- http://127.0.0.1:8000/set_fake_session/에 접속하면 가짜 세션이 설정됩니다.
- http://127.0.0.1:8000/get_fake_session/에 접속하면 가짜 세션 값을 확인할 수 있습니다.
- http://127.0.0.1:8000/delete_fake_session/에 접속하면 가짜 세션이 삭제됩니다.
'BackEnd > 장고(Django)' 카테고리의 다른 글
Django 404 페이지 세팅 (0) | 2024.07.07 |
---|---|
앱 생성. (0) | 2024.06.25 |
Django 템플릿에서는 request.COOKIES를 직접 접근할 수 없습니다. (0) | 2024.06.24 |
Include & {% block %} 태그 사용법 (0) | 2024.06.22 |
첫 번째 장고 앱 작성하기, part 1 (0) | 2024.05.11 |