快速开始指南

在安装django-registration之前,你需要先安装Django。django-registration 0.8需要Django1.1或更新版本的支持。

Django进一步的信息请参阅 Django下载页面,提供了方便的打包下载和安装介绍。

安装django-registration

安装django-registration的几种方式:

    1. 通过包管理器自动进行;
    2. 下载django-registration压缩包并手动安装;
    3. 通过执行最新代码的Mercurial检出手动安装。

推荐您学习使用virtualenv来开发部署Python软件。virtualenv能使各种软件的安装与Python环境隔离开,其他安装的软件不会产生冲突。这样Python包的安装、测试、管理和部署简单多了。

通过包管理器自动安装

有几种用于Python的包自动安装工具,最流行的是easy_install和pip,也可以用于安装django-registration。

使用easy_install,输入:

easy_install -Z django-registration

    注意:-Z参数是必需的,告诉esay_install不要新建压缩包;压缩包会阻碍Django正常工作的某些功能。
 
    使用pip,输入:

pip install django-registration

    
    你也可以使用操作系统发行商提供的django-registration包。请参阅你的操作系统的安装包详细列表,注意第三方发行商可能提供的是django-registration的老版本,所以你应该参阅你的操作系统包文档。
 

下载压缩包手动安装

    如果你不喜欢使用包自动安装,你可以下载django-registration压缩包手动安装。最新版本在http://pypi.python.org/pypi/django-registration/下载。
 
    下载完解压,得到一个包含setup.py安装脚本的django-registration-0.8文件夹。在命令行的此目录下输入:

python setup.py install

    注意:在一些系统中你可能需要管理员权限。
 

Mercurial检出手动安装

如果你想要尝试最新的开发代码,可以从django-registration版本库中获取。版本库由Bitbucket托管,使用Mercurial作为版本控制。你需要安装Mercurial来获取最新代码和文档,命令行输入:

hg clone

http://bitbucket.org/ubernostrum/django-registration/
 
    你也可以hg clone的-r参数来获得指定的版本,每个版本的格式都是:vX.Y,“X.Y”是版本号。例如:检出0.8版本,输入:

hg clone -r v0.8

http://bitbucket.org/ubernostrum/django-registration/
 
    上面两种方式都会在你的电脑中新建django-registration版本库的一个副本。然后你可以在检出你的Python导入路径里添加django-registration目录,或者执行setup.py脚本像包一样安装。
 

基本配置和使用

安装后,你就能添加django-registration到你正在开发的任何基于Django的项目。默认设置将会使用户注册按照下面工作流进行:

    1. 用户通过提供用户名、Email地址和密码注册;
    2. 通过此信息,一个新User对象被创建,它的is_active字段设置为False。此外,一个激活密钥会自动生成和存储,一封包含激活帐户链接的电子邮件会发送给用户。
    3. 用户点击激活链接,这个新帐户就会被激活(is_active字段被设置为True),然后用户就可以登录了。

注意:默认工作流需要django.contrib.auth模块被安装,推荐django.contrib.sites模块也应该被安装好。你还需要有一个可用的邮件服务器(发送激活邮件),给Django提供必需的设置来使用此邮件服务器(请参阅Django的邮件发送文档细节)。

必需的设置

首先在你项目的INSTALLED_APPS的设置中添加registration,然后添加一条额外的设置:ACCOUNT_ACTIVATION_DAYS

这个设置是用户注册后在这个天数内必须激活他的帐户。如果用户在这段时间内没有激活,这个帐户将永久保持未激活,可以通过django-registration中提供的维护脚本来删除。

例如,在你的Django settings文件中像下面一样设置:

INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.sites', 'registration', # ...other installed applications... ) ACCOUNT_ACTIVATION_DAYS = 7 # One-week activation window; you may, of course, use a different value.

 
完成后,运行

manage.py syncdb

来安装默认设置下的此模块。
 

设置urls

与django.contrib.auth中几个有用的视图(如:login,logout,password change/reset)一样,默认后台包含了Django URLconf,与django-registration中的视图相匹配的URL配置。这个URLconf在registration.backends.default.urls中,因此可以在项目的根URL配置中简单地包含它。例,将这些URLs加上前缀/accounts/,项目的根URL配置如下添加:

(r'^accounts/', include('registration.backends.default.urls')),

    用户就可以访问/accounts/register/来注册,激活后通过/accounts/login/登录,等等。
 

必需的模板

    默认配置中,你需要创建几个django-registration必需的模板,

django.contrib.auth

中视图所需的附加模板。django-registration所需的模板如下;注意,由于用做帐户激活邮件的模板异常,所有模板都使用

RequestContext

渲染和接收任何由

context processors

提供的附加变量。
 

registration/registration_form.html

    用于显示用户填写注册的表单。上下文:
    form
    注册表单。它是

django.forms.Form

子类的一个实例;请参阅

Django’s forms documention

中如何在模板中显示表单。
 

registration/registration_complete.html

用于注册表单成功提交后。这个模板没有任何自己的变量,只是简单地告知用户帐户激活邮件已经发送出去。

 

registration/activate.html

用于帐户激活失败。上下文:

   activation_key
   尝试激活的激活码
 

registration/activation_complete.html

   用于成功激活帐户。这个模板也没有自己的变量,只是简单告知用户他的帐户现在已激活了。
 

registration/activation_email_subject.txt

   用于生成激活邮件的邮件标题。因为邮件标题必须是单行文本,所以任何从这个模板的输出在使用前都会被强制压缩成单行的。上下文:
   activation_key
   新帐户的激活码。
   expiration_days
   帐户激活的剩余天数。
   site
   表示用户注册站点的对象,依赖于安装的

django.contrib.sites

,是

django.contrib.sites.models.Site

(如果这个sites应用已安装)或

django.contrib.sites.models.RequestSite

(如果没有安装)的一个实例。关于这些对象接口的更多细节请参阅

the documentation for the Django sites framework

 

registration/activation_email.txt

   用于生成激活邮件的内容。应该显示用户点击就能激活帐户的链接。上下文:
   activation_key
   新帐户的激活码
   expiration_days
   帐户激活的剩余天数。
   site
   表示用户注册站点的对象,依赖于安装的django.contrib.sites,是

django.contrib.sites.models.Site

(如果这个sites应用已安装)或

django.contrib.sites.models.RequestSite

(如果没有安装)的一个实例。关于这些对象接口的更多细节请参阅

the documentation for the Django sites framework

   注意,用户生成帐户激活邮件的模板的扩展名是.txt,不是.html。由于对HTML邮件互用性问题的普遍反感,django-registration默认采用平文邮件,所以这些模板应该简单地输入平文,而不是HTMl。
   为了使django.contrib.auth的视图有效,你需要创建这些视图所需的模板。
关于模板的更多细节请参阅 the documentation for Django’s authentication system https://www.cnblogs.com/PythonHome/archive/2011/12/17/2291040.html

django-registration的更多相关文章

  1. django authenticate

    程序少不了验证用户与权限分配.通过 Django 自带以及我们一些扩展就能够满足验证与权限的需求. 我在使用 Django 遇到的"login(request, user) 之后,再重定向这 ...

  2. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  3. 【转】Django Model field reference学习总结

    Django Model field reference学习总结(一) 本文档包含所有字段选项(field options)的内部细节和Django已经提供的field types. Field 选项 ...

  4. Authentication of Django

    Django Authentication 用户认证系统 一. Django的认证系统 Django自带一个用户认证系统,用于处理用户账户.群组.许可和基于cookie的用户会话. 1.1 概览 Dj ...

  5. django 验证用户是否登陆

    第一步 指定一下登陆url. url(r'^accounts/login/$', include(xadmin.site.urls)), 由于我用的xadmin故而指向了xadmin,如果使用默认的a ...

  6. Django 中的用户认证

    Django 自带一个用户认证系统,这个系统处理用户帐户.组.权限和基于 cookie 的 会话.本文说明这个系统是如何工作的. 概览 认证系统由以下部分组成: 用户 权限:控制用户进否可以执行某项任 ...

  7. Django用户认证系统(二)Web请求中的认证

    在每个Web请求中都提供一个 request.user 属性来表示当前用户.如果当前用户未登录,则该属性为AnonymousUser的一个实例,反之,则是一个User实例. 你可以通过is_authe ...

  8. Python+Django+SAE系列教程17-----authauth (认证与授权)系统1

    通过session,我们能够在多次浏览器请求中保持数据,接下来的部分就是用session来处理用户登录了. 当然,不能仅凭用户的一面之词,我们就相信,所以我们须要认证. 当然了,Django 也提供了 ...

  9. 基于控制权限和登录验证跳转的django登录界面的实现

    django框架提供了出去登录和退出系统的login和logout的视图函数,本实现中使用系统自带的是视图函数.需要在settings.py,urls.py,views.py和模板文件等几个方面进行考 ...

  10. Django Web开发【4】 用户注册与管理

    几乎所有的网站都提供了用户注册与管理功能,这一节,我们将讲解如何利用Django自身提供的用户认证系统实现用户注册与管理功能. 会话认证 在上一节中,我们学习了User数据模型,并用它来保存用户信息, ...

随机推荐

  1. ASP.NET Core托管和部署Linux实操演练手册

    一.课程介绍 ASP.NET Core 是一种全新的跨平台开源 .NET 框架,能够在 IIS.Nginx.Apache.Docker 上进行托管或在自己的进程中进行自托管. 作为一个.NET Web ...

  2. Error: Invalid or corrupt jarfile

    使用IDEA通过MAVEN创建quickstart项目后,添加了Artifacts,发现生成的jar包无法run,出现下面的错误: Error: Invalid or corrupt jarfile ...

  3. Python常用的软件包

    下面是Python开发常用的软件包. 名称 用途 安装命令 opengl   sudo pip3 install PyOpenGL  pyqtgraph GUI图形库 sudo pip3 instal ...

  4. springboot拦截器@Autowired为null解决

    问题原因 拦截器加载的时间点在springcontext之前,所以在拦截器中注入自然为null 文件解决 在spring配置文件中这样写 @Bean public HandlerInterceptor ...

  5. CSS实现16:9等比例盒子

    问题:图片的宽度100%,高度要始终自适应为16:9. 解决方案: 1.通过js程序算出绝对高度再进行设置.这是解决问题最容易想到的方法. 2.但是,我们的原则是能用css实现的功能尽量用css,这有 ...

  6. jvm实战-jvm调优

    jvm调优 jvm调优主要是内存管理方面的调优,包括各个代的大小,GC策略等. 代大小调优 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内 ...

  7. gdb fabs错误输出

    https://sourceware.org/gdb/wiki/FAQ GDB doesn't know the return type nor the type of the arguments f ...

  8. 目前流行前端几大UI框架

    title: "Windows照片查看器-召回大法" categories: windows tags: windows author: LIUREN --- Windows照片查 ...

  9. 全面解决.Net与Java互通时的RSA加解密问题,使用PEM格式的密钥文件

    作者: zyl910 一.缘由 RSA是一种常用的非对称加密算法.所以有时需要在不用编程语言中分别使用RSA的加密.解密.例如用Java做后台服务端,用C#开发桌面的客户端软件时. 由于 .Net.J ...

  10. Linux下逻辑地址、线性地址、物理地址详细总结

    Linux下逻辑地址.线性地址.物理地址详细总结 一.逻辑地址转线性地址      机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址 ...