Django的密码操作 您所在的位置:网站首页 django修改密码 Django的密码操作

Django的密码操作

#Django的密码操作| 来源: 网络整理| 查看: 265

原文始发于:Django的密码操作

一 关于密码操作的思维导图

Django的密码操作

二 修改密码内置函数源码

@sensitive_post_parameters() @csrf_protect @login_required @deprecate_current_app def password_change(request, # 修改密码模板默认位置 template_name='registration/password_change_form.html', post_change_redirect=None, password_change_form=PasswordChangeForm, extra_context=None): if post_change_redirect is None: post_change_redirect = reverse('password_change_done') else: # 根据传入参数重新定义重定向ULR post_change_redirect = resolve_url(post_change_redirect) if requesthod == "POST": form = password_change_form(user=request.user, data=request.POST) if form.is_valid(): form.save() # Updating the password logs out all other sessions for the user # except the current one. update_session_auth_hash(request, form.user) return HttpResponseRedirect(post_change_redirect) else: form = password_change_form(user=request.user) context = { 'form': form, 'title': _('Password change'), } if extra_context is not None: context.update(extra_context) return TemplateResponse(request, template_name, context) @login_required @deprecate_current_app def password_change_done(request, # 密码修改完成模板默认位置 template_name='registration/password_change_done.html', extra_context=None): context = { 'title': _('Password change successful'), } if extra_context is not None: context.update(extra_context) return TemplateResponse(request, template_name, context)

三 修改URL

from django.conf.urls import url from . import views from django.contrib.auth import views as auth_views urlpatterns = [ # 自定义登录 # url(r'^login/$', views.user_login, name='user_login'), # django内置的登录 url(r"^login/$", auth_views.login, name="user_login"), url(r"^new-login/$", auth_views.login, {"template_name": "account/login.html"}), url(r'^logout/$', auth_views.logout, {"template_name": "account/logout.html"}, name='user_logout'), url(r'^register/$', views.register, name="user_register"), # 给password_change方法传入post_change_redirect参数 url(r'^password-change/$', auth_views.password_change, {"post_change_redirect": "/account/password-change-done"}, name='password_change'), url(r'^password-change-done/$', auth_views.password_change_done, name='password_change_done'), ]

四 新增模板

1 mysite/templates/registration/password_change_form.html

{% extends "base.html" %} {% block title %}修改密码{% endblock %} {% block content %} 修改密码

为了安全起见,请输入您的旧密码,然后输入您的新密码两次,以便我们能够验证您输入的密码是否正确。

{% if form.new_password1.help_text %}

{{ form.new_password1.help_text|safe }}

{% endif %} {% csrf_token %} {{ form.old_password.label_tag }} {{ form.old_password }} {{ form.new_password1.label_tag }} {{ form.new_password1 }} {{ form.new_password2.label_tag }} {{ form.new_password2 }} {% endblock %}

2 mysite/templates/registration/password_change_done.html

{% extends "base.html" %} {% block title %}密码修改完成{% endblock %} {% block content %}

密码修改完成

{% endblock %}

五 增加修改密码入口,修改mysite/templates/header.html

{% load staticfiles %} 记录我的点点滴滴 {% if user.is_authenticated %} {{ user.username }} 修改密码 {{ user.username }} 退出 {% else %} 登录 {% endif %}

六 测试效果

Django的密码操作

Django的密码操作

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有