六、Django-Registration-Redux的基本使⽤
Django-Registration-Redux的基本使⽤
Django-Registration-Redux能为 Django 项⽬提供登录、注册、⼀步和两步⾝份验证、密码修改、密码重设等功能。
⼀、安装和设置
pip install -U django-registration-redux==1.4
打开 settings.py ⽂件,更新 INSTALLED_APPS 列表:
INSTALLED_APPS =[
'ib.admin',
'ib.auth',
'ttypes',
'ib.sessions',
'ssages',
'ib.staticfiles',
'registration'# 增加 registration 包
]
这个包所需的⼏个配置变量:
REGISTRATION_OPEN =True# 设为 True,允许⽤户注册
ACCOUNT_ACTIVATION_DAYS =7# 留⼀周的激活时间;当然,也可以设为其他值
REGISTRATION_AUTO_LOGIN =True# 设为 True,注册后⾃动登录
LOGIN_REDIRECT_URL ='/rango/'# 登录后呈现给⽤户的页⾯
LOGIN_URL ='/accounts/login/'# 未登录以及访问需要验证⾝份的页⾯时重定向的页⾯
打开 tango_with_django_project/urls.py(项⽬⽂件下的url.py,不是应⽤下的url.py) ⽂件,更新 urlpatterns,引⼊ registration 包的URL 映射:
url(r'^accounts/', include('registration.backends.simple.urls')),
⼆、各项操作的 URL 映射
django-registration-redux 包提供了多种操registration.backend.simple.urls 中包含下述映射:
❏ 注册 → /accounts/register/
❏ 注册完成 → /accounts/register/complete/
❏ 登录 → /accounts/login/
❏ 退出 → /accounts/logout/
❏ 修改密码 → /password/change/
❏ 重设密码 → /password/reset/
registration.backends.default.urls 还提供了两步注册过程中激活账户这⼀步:
❏ 激活 → activate/<activation_key>/
❏ 成功激活 → activate/complete/
❏ 激活电⼦邮件:
1. • 激活邮件的正⽂(⼀个⽂本⽂件)
2.• 激活邮件的主题(⼀个⽂本⽂件)
虽然 django-registration-redux 包提供了上述丰富的功能,但是没有提供模板,因为每个应⽤都有⾃⼰的结构和外观设计。
创建模板
模板需要根据⾃⼰的需求⾃⾏定义,如下为我⾃⼰创建的模板,以登录模板为例:
login.html:
{% extends "rango/base.html"%}
{% block body_block %}
<h1>Login</h1>
<form method="post" action=".">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Log in"/>
<input type="hidden" name="next" value="{{ next }}"/>
</form>
<p>
Not a member?
<a href="{% url 'registration_register' %}">Register</a>
</p>
django登录注册功能{% endblock %}
base.html:基模板,登录模板继承了该模板。此例⼦模板关注>>#下⾯代码即可。理解意思。
<!DOCTYPE html>
{% load staticfiles %}
{% load rango_template_tags %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
Rango-
{% block title_block %}
How to Tango with Django
{% endblock %}
</title>
</head>
<body>
<div>
{% block sidebar_block %}
{% get_category_list category %}
{% endblock %}
</div>
<div>
{% block body_block %}
{#        This is body_block's default content.#}
{% endblock %}
</div>
<hr>
>>>>>#关注下⾯即可>>####以上不需要关注
<div>
<ul>
{%if user.is_authenticated %}
<li><a href="{% url 'rango:restricted' %}">Restricted Page</a></li>
<li><a href="{% url 'auth_logout' %}?next=/rango/">Logout</a></li>
<li><a href="{% url 'auth_password_change' %}">Pass_Change</a></li>
{%else%}
<li><a href="{% url 'registration_register' %}">Regiser Here</a></li>
#此处为⽤户登录
#此处为⽤户登录
<li><a href="{% url 'auth_login' %}">Login</a></li>#此处为⽤户登录
{% endif %}
<li><a href="{% url 'rango:add_category' %}">Add New Category</a></li>
<li><a href="{% url 'rango:about' %}">About</a></li>
<li><a href="{% url 'rango:index' %}">Index</a></li>
</ul>
</div>
</body>
</html>
对此登录模板及完成,效果如下:
理解上述模板的url映射关系(个⼈理解):
⾸先项⽬⽂件下的url.py映⼊了regux的url映射,故此操作已经有了regux登录、注册等功能,此时只需要模板对此进⾏显⽰。
⽽要在模板中显⽰regux提供的功能,⼜要⽤url模板标签进⾏链接跳转:如上述登录中的代码⽚段,如下:
<a href="{% url 'registration_register' %}">Register</a>
此时点击链接即可跳转⾄regux提供的注册页⾯。
梳理上⾯的流程:
1. 安装pip install -U django-registration-redux==1.4
2. 在setting⽂件中配置相关的⽂件
3. 在项⽬⽂件下的url.py,更新 urlpatterns,引⼊ registration 包的URL 映射。
4. 创建模板显⽰页⾯。
上述为本⼈在学习Django时所做的笔记,⾥⾯包含了⼀些个⼈见解,为了⾃⼰能够理解,如有错误,欢迎⼤家的指正。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论