python - 예제 - django 버튼 이벤트



요청 객체를 변경하는 django (2)

나는 이미 장고 프로젝트를 가지고 있으며 그것들은 논리적이다 :

url : URL? username = name & pwd = passwd

전망:

def func(request):
   dic = request.GET

   username = dic.get("username")
   pwd = dic.get("pwd")

하지만 지금 우리는 데이터를 암호화해야합니다. 그런 다음 요청이이됩니다.

url : URL? crypt = XXXXXXXXXX ( "username = name & pwd = passwd"의 경우 XXXXXXXX는 암호화 된 문자열입니다.)

그래서 모든 뷰 기능을 수정해야합니다. 하지만 지금은 모든보기 기능을 수정하지 못하도록 장고 미들웨어에서 암호 해독을 원합니다.

하지만 내가 request.GET 수정할 때, 오류 메시지 "이 QueryDict 인스턴스가 불변"recive. 어떻게 수정할 수 있습니까?

https://ffff65535.com


불변성 제거 :

if not request.GET._mutable:
   request.GET._mutable = True

# now you can spoil it
request.GET['pwd'] = 'iloveyou'

사용자 이름과 암호를 보내려면 GET을 사용하면 안됩니다. URL 막대에 정보가 표시되고 보안 위험 이 발생할 수 있으므로 좋지 않습니다. 대신 POST를 사용하십시오. 또한, 나는 당신이 사용자를 인증하려고 노력하고있는 것 같아요. 완전히 빌드 된 무언가를 다룰 정도로 많은 일 (새로운 미들웨어 생성)을하고있는 것처럼 보이며 , 문서 에서 예제를 얻으려고합니다.

from django.contrib.auth import authenticate, login

def my_view(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    if user is not None:
        if user.is_active:
            login(request, user)
            # Redirect to a success page.
        else:
            # Return a 'disabled account' error message
    else:
        # Return an 'invalid login' error message.

나 자신은 login_required 데코레이터를 사용하는 것을 정말 좋아한다. 사용하기가 매우 쉽다. 희망은 도움이됩니다.





django