六、Django-Registration-Redux的基本使用

Django-Registration-Redux的基本使用

Django-Registration-Redux能为 Django 项目提供登录、注册、一步和两步身份验证、密码修改、密码重设等功能。

一、安装和设置

pip install -U django-registration-redux==1.4

打开 settings.py 文件,更新 INSTALLED_APPS 列表:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.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//
❏ 成功激活 → activate/complete/
❏ 激活电子邮件:

	 1. • 激活邮件的正文(一个文本文件)
	 2.• 激活邮件的主题(一个文本文件)

虽然 django-registration-redux 包提供了上述丰富的功能,但是没有提供模板,因为每个应用都有自己的结构和外观设计。

注意,所有 URL 都使用 url 模板标签引用,且都是Django-Registration-Redux提供的。如果记不得,可以访问 http://127.0.0.1:8000/accounts/,这个页面列出了全部 URL 映射,以及各 URL 对应的名称,如下:
六、Django-Registration-Redux的基本使用_第1张图片

创建模板

模板需要根据自己的需求自行定义,如下为我自己创建的模板,以登录模板为例:

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>
{% 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>

对此登录模板及完成,效果如下:
六、Django-Registration-Redux的基本使用_第2张图片

理解上述模板的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时所做的笔记,里面包含了一些个人见解,为了自己能够理解,如有错误,欢迎大家的指正。

你可能感兴趣的:(Django,python,django)