Django 프레임워크 사용자 정의session 처리 작업 예
django는 자신의session 프레임워크를 가지고 자신만의 메커니즘 처리를 하지만 이것은 보통 새로운 구성 요소 시스템에 사용될 때 사용된다.만약에 기존의 시스템이라면django를 웹판으로 다시 만들고 싶다. 기존의 데이터베이스는 이미 설계되어 있기 때문에 그 테이블 구조를 수정할 수 없지만 테이블을 늘릴 수 있다. 왜냐하면django를 사용하면django 자신의 일부 시스템 테이블이 있어야 하기 때문이다. 이런 것들은 반드시 원래의 데이터베이스에 추가해야 하기 때문에 우리는 mange를 통과할 수 있다.py syncdb에서 생성합니다.
| auth_group | auth_group_permissions | auth_permission | auth_user | auth_user_groups | auth_user_user_permissions | blog_content | django_content_type | django_session | django_site
물론 이 시계들은 각자 자신의 작용이 있다. 예를 들어django세션은 세션을 관리하는 데 쓰인다.
만약djiango 자신의session으로 사용자의 로그인 여부를 관리한다면 시스템 자체 장식 방법:
@login_required
그러나 만약에 네가 원래의 시스템에서 개발한다면 원래의 사용자 관리는django와 같을 수 없을 것이다.그래서 사용자가 로그인했는지 아닌지를 판단하기 위해 유사한 @login_required
방법을 직접 써야 한다.사용자 모델이 사용자의Class이고 모델에 정의되어 있다고 가정하십시오
class UserID(models.Model):
login_id=models.CharField(max_length=32)
login_pwd=models.CharField(max_length=32,blank=False)
nickname=models.CharField(max_length=50)
로그인 방법
def checklogin(request):
""" """
try:
login_id=request.POST.get('user','')
userpwd=request.POST.get('password','')
existuser=models.UserID.objects.get(login_id=login_id,login_pwd=userpwd)
# , session
request.session['myuser']=existuser
except:
.....
지금까지 사용자가 정의한 로그인 과정이 완성되었고session 값이 기록되었습니다.만약 다른 방법이 사용자가 로그인했는지 확인해야 한다면 어떻게 자신의 판단 방법을 씁니까?
def check_session(func):
''' check user session '''
def wrapper(request,*args, **kv):
userinfo=request.session.get('myuser',None)
if not userinfo:
return HttpResponseRedirect('/login') # ,
return func(request,*args, **kv)
return wrapper
사용자가 로그인했는지 확인해야 하는views 방법에 이 장식을 추가하면 됩니다.
@check_session
def get_all_infomation(request):
context={}
context.update(csrf(request))
......
return render_to_response('customer/all_information.html',context)
이렇게 하면 사용자가 로그인하지 않으면 로그인 페이지로 넘어가 장식으로 사용자session 판단을 실현한다.
물론 누군가가 물어볼 것입니다. 로그인을 취소하려면 어떻게 해야 합니까?간단히,django의session은 사실dict이기 때문에 다음과 같은 방법으로 취소할 수 있다.
def logout(request):
try:
del request.session['myuser']
except KeyError:
pass
return HttpResponseRedirect('/')
본고에서 기술한 바가 여러분들이 Django 프레임워크를 바탕으로 하는 Python 프로그램 설계에 도움이 되었으면 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.