Django의 비밀번호 재설정 보기
12366 단어 codenewbiepythondjango
먼저
settings.py
로 이동하여 SMTP 매개변수를 설정합니다.EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = '<Your Gmail address>'
EMAIL_HOST_PASSWORD = '<Your Gmail password>'
EMAIL_USE_TLS = True
Django가 제공하는 기본 보기는 클래스 기반 보기입니다.
urls.py
에서 먼저 뷰를 가져옵니다.from django.contrib.auth import views as auth_views
다음으로
urls.py
의 urlpatterns 내에 다음 경로를 추가해야 합니다.urlpatterns = [
path('reset_password/', auth_views.PasswordResetView.as_view(), name ='reset_password'),
path('reset_password_sent/', auth_views.PasswordResetDoneView.as_view(), name ='password_reset_done'),
path('reset/<uidb64>/<token>', auth_views.PasswordResetConfirmView.as_view(), name ='password_reset_confirm'),
path('reset_password_complete/', auth_views.PasswordResetCompleteView.as_view(), name ='password_reset_complete'),
]
노트:
경로의 이름은 Django가 예상하는 이름이므로 위에 이름과 정확히 같아야 합니다. 이는 이름이 다음과 같아야 함을 의미합니다.
1)
reset_password
,2)
password_reset_done
,3)
password_reset_confirm
4) 및 password_reset_complete
또한 Django는 네 가지 경로 모두에 대한 기본 템플릿을 제공하지만, 우리가 직접 만든 템플릿 이름을 추가하여 이를 사용자 정의할 수 있습니다. 각 URL 경로를 렌더링하고 as.view() 메서드 내에 이름을 추가하기 위해 4개의 새 템플릿을 생성합니다.
템플릿 이름은 다음과 같이 지정합니다.
1)
reset_password.html
2) password_reset_sent.html
3) password_reset_form.html
4) password_reset_done.html
다음으로
template_name
로 추가합니다.urlpatterns = [
path('reset_password/', auth_views.PasswordResetView.as_view(template_name = "reset_password.html"), name ='reset_password'),
path('reset_password_sent/', auth_views.PasswordResetDoneView.as_view(template_name = "password_reset_sent.html"), name ='password_reset_done'),
path('reset/<uidb64>/<token>', auth_views.PasswordResetConfirmView.as_view(template_name = "password_reset_form.html"), name ='password_reset_confirm'),
path('reset_password_complete/', auth_views.PasswordResetCompleteView.as_view(template_name = "password_reset_done.html"), name ='password_reset_complete')
]
마지막으로 템플릿을 로드해 보겠습니다.
A)
reset_password.html
내에서 {{form}}
를 사용하여 뷰를 전달합니다. 이것이 Django가 기대하는 기본 매개변수이기 때문입니다.{extends 'base.html' %}
{% block content %}
<div class="text-center" style="width: 80%; margin: 0 auto">
<h1>Welcome to the Password Reset Page</h1>
<h3>
Forgot your password? Please enter the email address you used to register
with us and we will send you a link to reset your password
</h3>
</div>
<br/>
<form action="" method="POST" class="text-center">
{% csrf_token %}
{{form}}
<input type="submit" value="Send email" /><br>
</form><br/>
<div class="text-center">
<a href="{% url 'home' %}">Return to home page</a>
</div>
{% endblock%}
B) 인
password_reset_sent.html
{% extends 'base.html' %}
{% block content%}
<div class="text-center" style="width: 80%; margin: 0 auto">
<h1>Password reset sent</h1>
<h5>We’ve emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly.</h5><br>
<h6 style="width: 60%; margin: 0 auto">If you don’t receive an email, please make sure you’ve entered the address you registered with, and check your spam folder.</h6>
</div>
<div class="text-center">
<a href="{% url 'home' %}">Return to home page</a>
</div>
{% endblock%}
C) 셋째, 우리는
password_reset_form.html
{% extends 'base.html' %}
{% block content%}
<div class="text-center" style="width: 80%; margin: 0 auto">
<h1>Password Reset Form</h1>
<h6 style="width: 60%; margin: 0 auto">
Please enter your new password so we can verify.
</h6>
</div>
<br />
<form action="" method="POST">
{% csrf_token %}
{{form}}
<input type="submit" value="Reset Password"/>
</form>
{% endblock%}
D) 마지막으로 내
password_reset_done.html
{% extends 'base.html' %}
{% block content%}
<div class="text-center" style="width: 80%; margin: 0 auto">
<h1>Password reset complete</h1>
<h6 style="width: 60%; margin: 0 auto">
Your Password has been set. You may go ahead and login
</h6>
</div>
<br />
<div class="text-center">
<a href="{% url 'login' %}">Login</a>
</div>
{% endblock%}
결론적으로 GMAIL을 사용할 때 'SMTP 인증 오류'가 발생할 수 있습니다. 이에 대한 간단한 해결책은 GMAIL 설정 아래에서 '보안 수준이 낮은 앱' 옵션을 활성화하는 것입니다.
Reference
이 문제에 관하여(Django의 비밀번호 재설정 보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yahaya_hk/password-reset-views-in-django-2gf2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)