数据可视化(四):django-registration-redux

django-registration-redux

目前我所使用的版本是2.4,它支持Django 1.11及以上的版本。

是干什么的呢?可以把它理解为一个已经写好的app,作为了的依赖包。看过源码发现,它将继承与django中的类,重构了用户认证等功能,实现了在用户注册完之后可以发送一份激活邮件,通过邮件的激活码来完成账户激活等功能。当然,我是奔着这个功能来使用它的,其他功能我还没有探索。

安装 django-registration-redux

由于它作为的依赖包进行使用,所以安装起来非常方便:

当然你也可以在中下载其源码包,然后进行解压,在你的终端上键入以下命令进行安装:

基本配置和使用

一旦安装了,你就可以将其作为app添加到任何的django项目中。其默认的配置将使用户启用以下的功能:

用户将通过、、字段完成注册。

用户进行创建之后,字段默认为。并且注册完用户后会自动生成一个保存在数据库中,并通过邮件发送给注册用户

用户通过点击邮件中链接来完成账户激活,字段的值也会由变为,之后用户就可以进行登录了。

注意,默认情况下,要求 app以及 app要完成安装,并且由于之后要给用户发送验证邮件,所以有关邮箱的配置也要配置好,有关邮箱的配置可以通过 http://docs.djangoproject.com/en/dev/topics/email/来查看。

设置

首先要在中添加,以及以下一些设置,代码中有详细的注释:

设置 URLs

后台默认为中的提供了Django的,为了设置了 URL patterns。有关可以在类中查看相关内容

这样用户就可以通过访问URL 来到用户注册页面,访问进入登录页面。

Templates

使用中的前提是你已经有了,因为其内置的文件都继成了。在中应该包含了, , ‘content’模块。

说几个常用的吧:

registration/registration_form.html

用来在注册页面展示user的form,默认情况下,其包含了,其调用了中一些子类的实例。

registration/activation_email_subject.txt

用于给设置发送邮件的主题。内容包括了、、。其中指定了这封邮件的有效期限,是你网站的域名,在项目中执行命令之后,就会在数据库中生成一张表,表中默认记录了一条记录:

registration/activation_email.txt

如果你只需要使用版本的邮件,就要将覆盖掉,或者在中声明。

此文件中记录了你要发送邮件的内容,以格式发送邮件。内容由个人定义,由于这是激活邮件,所以同样的要包含激活码等相关信息,可以看一下源码:

registration/activation_email.html

这个和上面的作用一样,都是用于编辑给用户发送邮件的内容,只不过这是格式。

我看了下有关这两个文件的源码,在这里需要解释一下:

从源码中可以看到,它首先将文件转换成了邮件内容,然后下面用了判断变量值是否为,若为,则将文件也转换为邮件内容。

我刚看到这有点懵,为什么弄了两份文件?这样不就重复了吗?后来在网上找到了相关解释:

可以看出,它只是给邮件服务器发送了两个版本的邮件,但并不会出现问题,默认将使用第一个版本作为最终的发送版本。

其他的相关文件可以在https://django-registration-redux.readthedocs.io/en/latest/quickstart.html中找到详细的说明。

优化 templates

以上就是的相关参数设置,至此你可以正常使用其功能,但是由于其都是默认的,所以界面比较丑陋,你可以根据自己的喜爱偏好进行修改。比如

可以看到,在代码中我用到了另一个plugin,叫做,它可以将你的自动的进行优化,风格为,版本可以自己设置,官方文档看这里:https://django-crispy-forms.readthedocs.io/en/latest/install.html,使用很简单,在这里不再做详细介绍。

按照我上面的代码,看到的界面是上面那张注册界面的样子,否则按照最原始的,界面是这样的:

按照界面上的提示注册用户之后,会收到一封验证邮件:

总结

总体来说,是个非常方便的用户管理模块,可以通过简单的设置就可以实现邮件验证功能,不需要自己再动手去写相关的views。首先我需要设置文件,将的名字添加到列表里面,然后设置一下,最后只需要关心如果让界面更漂亮就好了,配置起来非常流畅。

下一篇文章我将记录如何使用来画图。

欢迎关注我的个人公众号

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180822G0YNAK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券