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/<activation_key>/
❏ 成功激活 → activate/complete/
❏ 激活电子邮件:

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

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

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

创建模板

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

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>

对此登录模板及完成,效果如下:

理解上述模板的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-Registration-Redux的基本使用相关推荐

  1. 快速上手Django(六) -Django之Django drf 序列化器Serializer类

    文章目录 快速上手Django(六) -Django之Django drf 序列化器Serializer类 1. 背景 2. 使用思路 3. 代码demo 4. [重要]序列化类 ModelSeria ...

  2. 第十六 django进一步了解

    一.关于django 的URLS 1.配置固定访问 1.1.配置fly views from django.shortcuts import render,HttpResponse# Create y ...

  3. 框架之---Django

    Django是功能最为健全的一个WEB框架,但就因为过于健全,显得过于臃肿.但是Django中最为正要的就是Middleware.ORM和From表单. Django之web本质 Django之初 D ...

  4. Django和Ajax

    本文目录 一 什么是Ajax 二 基于jquery的Ajax实现 三 案例 四 文件上传 五 Ajax提交json格式数据 六 Django内置的serializers(把对象序列化成json字符串) ...

  5. React + Redux + Express + Mongodb 零基础开发完整大型商城网站视频教程(97 个视频)

    React + Redux + Express + Mongodb 零基础开发完整大型商城网站视频教程(97 个视频) mern 架构零基础开发完整电商网站 React + Redux + Expre ...

  6. 【React+TS】从零开始搭建react+typescript+router+redux+less+px2rem自适应+sass+axios反向代理+别名@+Antd-mobile

    一.通过create-react-app脚手架创建项目 npx create-react-app testproject --template typescript 在vscode中打开项目,可以看到 ...

  7. Django框架 1

    2005年发布,采用python 语言编写的开源框架 早期的时候Django主做新闻和内容管理的 一个重量级的Python Web 框架,Django配备了常用的大部分组件 一.路由 URL 解析 原 ...

  8. day51-55 Django

    一,什么是web框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有的 ...

  9. django框架(1)

    一什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有的 ...

  10. 西游之路——python全栈——Django的web框架本质

    知识预览 Django基本命令 二 路由配置系统(URLconf) 三 编写视图 四 Template 五 数据库与ORM admin的配置 一 什么是web框架? 框架,即framework,特指为 ...

最新文章

  1. docker宿主机访问docker容器服务失败
  2. JavaScript 初学者必看“箭头函数”
  3. Andriod anim 补间(Tween)动画与Interpolator以及setCustomAnimations方法
  4. 返回1到n的所有组合python_如何在Python中生成0-1矩阵的所有可能组合?
  5. Keras TensorFlow教程:如何从零开发一个复杂深度学习模型
  6. python 将图片旋转多个角度_【技术】把你的朋友变成表情包?Python:So easy
  7. ring0 ring3 kernel driver
  8. java异步刷新集合,同步和异步集合的性能测试,异步集合性能测试,package cn.o
  9. java字符类型的返回值,Java字符类isWhitespace()方法及示例
  10. Hadoop核心之MapReduce架构设计
  11. DeepMind成为AI界创业加速营:3年17名资深员工与高管离职
  12. oracle将列名进行拼接,请教关于用拼接的字符串作为表的列名进行操作的问题
  13. logging synchronous
  14. 网络通信数据传输原理
  15. 昂达 android 刷机包,系统 基于安卓4.3全新ROM_昂达平板电脑_平板电脑评测-中关村在线...
  16. 踩坑录·CacheCloud无法启动
  17. 视频课程:CMOS模拟集成电路版图设计
  18. 现代制造技术——金属切削原理
  19. ps添加图层蒙版的两种方法
  20. 常见的几种锁(互斥锁,自旋锁,乐观锁,悲观锁)

热门文章

  1. iphone5s 越狱 绕过icolud
  2. 人体生物钟,24小时器官工作表
  3. 《爬虫爬 wallhaven.cc壁纸》
  4. 007 分数的基本性质(五下)
  5. luci与页面的数据交互
  6. 《人工智能原理》读书笔记:第2章 体系论
  7. 数美科技风控前沿| AIGC需要什么内容风控基建?ChatGPT本“人”有话要说
  8. 关于BAPI_CONTRACT_CREATEFROMDATA涉及使用价格
  9. python 福利_python 处理json
  10. 时间序列分析中统计模型statsmodels.tsa.arima_model