Django,是个不错的框架,非常全,内置了用户系统,咱们稍微修改就可以实现发送重置密码邮件。
url.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
from django.contrib.auth import views as auth_views
urlpatterns = patterns('',
url(r'^forgot-password/$',
views.forgot_password, name="forgot-password"),
url(r'^password/change/$',
auth_views.password_change,
name='password_change'),
url(r'^password/change/done/$',
auth_views.password_change_done,
name='password_change_done'),
url(r'^resetpassword/$',
auth_views.password_reset,
name='password_reset'),
url(r'^resetpassword/passwordsent/$',
auth_views.password_reset_done,
name='password_reset_done'),
url(r'^reset/done/$',
auth_views.password_reset_complete,
name='password_reset_complete'),
url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
auth_views.password_reset_confirm,
name='password_reset_confirm'),
)
|
templates设置
在 django/contrib/auth/templates/registration
中copy如下文件到自己的templates目录下的registration中:
1
|
password_reset_subject.txt
|
在 django/contrib/admin/templates/registration
中copy如下文件到自己的templates目录下的registration中:
1
2
3
4
5
6
7
8
|
logged_out.html
password_change_done.html
password_change_form.html
password_reset_complete.html #修改密码完成的文件
password_reset_confirm.html
password_reset_done.html
password_reset_email.html #发email的文件
password_reset_form.html
|
可根据自己的需求进行定义我在这里面,就把logged_out.html文件删除了,加入了自己写的 login.html ,然后将所有文件中的
1
2
3
|
{% extends admin/base_site.html %}
改为
{% extends base.html %}
|
这样做完还是不能用的,因为需要base.html文件:
1
2
3
4
5
6
7
8
|
<html>
<head>
<title>{% block title %}{% endblock title %}</title>
</head>
<body>
{% block content %}{% endblock content %}
</body>
</html>
|
测试
点击忘记密码:

输入自己的邮箱地址。
不一会就会收到邮件:

内容为:

想修改邮件内容可以修改templates/registration/password_reset_email.html
文件。