Django 비밀번호 변경
Django 웹페이지에 로그인한 후 사용자가 비밀번호를 변경할 수 있는 웹페이지를 만드는 방법을 배웁니다.
Django에서 사용자가 비밀번호를 변경할 수 있는 웹페이지 만들기
예를 들어 Django에 프로젝트가 있고 사용자 애플리케이션이 있는 이 프로젝트에서 작업할 것입니다. 이 앱에서 view.py
파일을 찾았고 필요한 두 개의 보기를 가져와야 합니다.
그 중 하나는 PasswordChangeView
라고 하며 암호를 변경할 수 있으며 PasswordResetDoneView
는 암호가 재설정되었는지 확인합니다.
이제 PasswordChangeView
에서 상속할 MyPasswordChangeView
라는 클래스를 정의해야 합니다. 이 클래스 내에서 template_name
변수를 선언하고 사용자가 비밀번호를 변경할 템플릿 URL을 저장합니다.
success_url
변수에 reverse_lazy()
변수를 넣어야 합니다. 코드 아래에서 MyPasswordResetDoneView
라는 또 다른 클래스를 만들고 PasswordResetDoneView
에서 상속해야 합니다.
이 클래스 내에서 template_name
변수만 선언하고 이 template_name
변수에 대한 템플릿 경로를 저장합니다. 그런 다음 저장하고 url.py
파일에 이러한 보기를 등록해야 합니다.
view.py
파일:
from django.shortcuts import render
from django.urls import reverse_lazy
from django.contrib.auth.views import PasswordChangeView, PasswordResetDoneView
class MyPasswordChangeView(PasswordChangeView):
template_name = "users/password-change.html"
success_url = reverse_lazy("users:password-change-done-view")
class MyPasswordResetDoneView(PasswordResetDoneView):
template_name = "users/password-reset-done.html"
사용자 애플리케이션 내부에 url.py
파일을 생성한 다음 생성한 파일로 보기를 가져옵니다.
그런 다음 app_name
이라는 변수를 만들고 앱 이름인 users
와 동일한 변수를 만들어야 합니다. 줄 아래에 보기를 URL과 통합할 urlpatterns
목록을 만듭니다.
템플릿을 생성할 것이지만 다른 곳으로 이동하기 전에 urls.py
파일에 기본 프로젝트의 urlpatterns
에 대한 사용자 경로를 포함해야 합니다. 사용자를 위해 movies
아래에 새 경로를 만들고 namespace
는 앱과 일치해야 합니다. 코드를 작성한 후 저장하십시오.
이제 사용자 앱으로 돌아가서 여기에서 templates
폴더를 만들어 보겠습니다. templates
안에 users
라는 또 다른 폴더를 만듭니다. users
폴더에서 view.py
파일 내에 정의한 두 개의 HTML 파일을 생성해야 합니다.
password-change.html
파일에 대한 작업을 시작하므로 먼저 base.html
에서 상속한 후 block title
과 다음으로 구성될 block content
를 설정합니다. 양식. form action
을 비워두자. 메소드는 POST
와 같으며, 이는 POST
요청을 처리한다는 의미입니다.
요청을 보낼 수 있도록 양식 안에 csrf_token
을 넣어야 합니다. 버튼을 만들고 이 유형을 제출
로 유지하고 클래스를 추가하여 녹색 버튼으로 만듭니다.
password-reset-done.html
에 대해 작업하고 여기에서 다시 base.html
파일에서 상속해야 합니다. 이후에는 접근 방식이 동일하지만 구문이 약간 다릅니다.
그런 다음 href
속성을 작성하고 홈 보기에 대한 경로 이름을 제공하여 사용자가 이 버튼을 눌러 연락할 수 있도록 합니다.
마지막으로 home.html
로 이동하여 사용자가 암호를 변경할 페이지에 액세스할 수 있는 버튼을 만듭니다.
서버가 실행 중이고 홈 페이지를 통해 비밀번호를 변경해 보겠습니다. 로그인 후 사용자가 비밀번호를 변경할 수 있음을 알 수 있습니다.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn