Django 프로젝트 개발에서 cookies와session의 상용 조작 분석

3119 단어
본고의 실례는 Django 프로젝트 개발에서 cookies와session의 상용 조작을 설명했다.여러분에게 참고하도록 공유하겠습니다. 구체적으로는 다음과 같습니다.
COOKIES 작업
cookies가 있는지 확인합니다.

request.COOKIES.has_key('')

쿠키 가져오기:

request.COOKIES.get('visits', '1')
if 'last_visit' in request.COOKIES:
 request.COOKIES['last_visit']


쿠키 설정:

response.set_cookie('', value)


SESSION 작업
세션 가져오기:

fav_color = request.session.get('fav_color', 'red')
fav_color = request.session['fav_color']


세션 설정:

request.session['visits'] = visits


세션 삭제:

del request.session['fav_color']

주어진 키가 세션에 존재하지 않으면 KeyError를 던집니다.
판단에 세션 포함:

'fav_color' in request.session

세션 데이터베이스 지우기

python manage.py clearsessions

첨부: Django는 사용자 정의 cookies에 기반한 로그인, 등록, 종료 기능의 예:

#  
def regist(req):
  if req.method == 'POST':
    uf = UserForm(req.POST)
    if uf.is_valid():
      #      
      username = uf.cleaned_data['username']
      password = uf.cleaned_data['password']
      #      
      User.objects.create(username= username,password=password)
      return HttpResponse('regist success!!')
  else:
    uf = UserForm()
  return render_to_response('regist.html',{'uf':uf}, context_instance=RequestContext(req))
#  
def login(req):
  if req.method == 'POST':
    uf = UserForm(req.POST)
    if uf.is_valid():
      #        
      username = uf.cleaned_data['username']
      password = uf.cleaned_data['password']
      #               
      user = User.objects.filter(username__exact = username,password__exact = password)
      if user:
        #    ,  index
        response = HttpResponseRedirect('/online/index/')
        # username     cookie,     3600
        response.set_cookie('username',username,3600)
        return response
      else:
        #    ,  login
        return HttpResponseRedirect('/online/login/')
  else:
    uf = UserForm()
  return render_to_response('login.html',{'uf':uf},context_instance=RequestContext(req))
#    
def index(req):
  username = req.COOKIES.get('username','')
  return render_to_response('index.html' ,{'username':username})
#  
def logout(req):
  response = HttpResponse('logout !!')
  #  cookie   username
  response.delete_cookie('username')
  return response

본고에서 기술한 바가 여러분들이 Django 프레임워크를 바탕으로 하는 Python 프로그램 설계에 도움이 되었으면 합니다.

좋은 웹페이지 즐겨찾기