django-registration
快速开始指南
在安装django-registration之前,你需要先安装Django。django-registration 0.8需要Django1.1或更新版本的支持。
Django进一步的信息请参阅 Django下载页面,提供了方便的打包下载和安装介绍。
安装django-registration
安装django-registration的几种方式:
- 通过包管理器自动进行;
- 下载django-registration压缩包并手动安装;
- 通过执行最新代码的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的项目。默认设置将会使用户注册按照下面工作流进行:
- 用户通过提供用户名、Email地址和密码注册;
- 通过此信息,一个新User对象被创建,它的is_active字段设置为False。此外,一个激活密钥会自动生成和存储,一封包含激活帐户链接的电子邮件会发送给用户。
- 用户点击激活链接,这个新帐户就会被激活(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的更多相关文章
- django authenticate
程序少不了验证用户与权限分配.通过 Django 自带以及我们一些扩展就能够满足验证与权限的需求. 我在使用 Django 遇到的"login(request, user) 之后,再重定向这 ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- 【转】Django Model field reference学习总结
Django Model field reference学习总结(一) 本文档包含所有字段选项(field options)的内部细节和Django已经提供的field types. Field 选项 ...
- Authentication of Django
Django Authentication 用户认证系统 一. Django的认证系统 Django自带一个用户认证系统,用于处理用户账户.群组.许可和基于cookie的用户会话. 1.1 概览 Dj ...
- django 验证用户是否登陆
第一步 指定一下登陆url. url(r'^accounts/login/$', include(xadmin.site.urls)), 由于我用的xadmin故而指向了xadmin,如果使用默认的a ...
- Django 中的用户认证
Django 自带一个用户认证系统,这个系统处理用户帐户.组.权限和基于 cookie 的 会话.本文说明这个系统是如何工作的. 概览 认证系统由以下部分组成: 用户 权限:控制用户进否可以执行某项任 ...
- Django用户认证系统(二)Web请求中的认证
在每个Web请求中都提供一个 request.user 属性来表示当前用户.如果当前用户未登录,则该属性为AnonymousUser的一个实例,反之,则是一个User实例. 你可以通过is_authe ...
- Python+Django+SAE系列教程17-----authauth (认证与授权)系统1
通过session,我们能够在多次浏览器请求中保持数据,接下来的部分就是用session来处理用户登录了. 当然,不能仅凭用户的一面之词,我们就相信,所以我们须要认证. 当然了,Django 也提供了 ...
- 基于控制权限和登录验证跳转的django登录界面的实现
django框架提供了出去登录和退出系统的login和logout的视图函数,本实现中使用系统自带的是视图函数.需要在settings.py,urls.py,views.py和模板文件等几个方面进行考 ...
- Django Web开发【4】 用户注册与管理
几乎所有的网站都提供了用户注册与管理功能,这一节,我们将讲解如何利用Django自身提供的用户认证系统实现用户注册与管理功能. 会话认证 在上一节中,我们学习了User数据模型,并用它来保存用户信息, ...
随机推荐
- C#_02.14_基础五_.NET类
C#_02.14_基础五_.NET类 一.类实例: 我们前面说过类是一个模板,我们通过类创建一个又一个的实例,通常情况下类当中的变量是每一个实例都各有一份的,互相不影响,而静态字段是除外的,静态字段是 ...
- 使用 OpenSessionInViewFilter 配置加载
1.使用 OpenSessionInViewFilter
- 前端工程化系列[05] Yeoman脚手架使用入门
Yeoman是一款流行的前端的脚手架工具. 脚手架工具可以用来快速的自动生成项目的必要文件和基础文件结构.Yeoman使用的内建命令为yo,同时它自己也是一个包管理工具和自动化任务工具,它基于特定的模 ...
- rvs产生服从指定分布的随机数 pdf概率密度函数 cdf累计分布函数 ppf 分位点函数
统计工作中几个常用用法在python统计函数库scipy.stats的使用范例. 正态分布以正态分布的常见需求为例了解scipy.stats的基本使用方法. 1.生成服从指定分布的随机数 norm.r ...
- 为Ubuntu新创建用户创建默认.bashrc并自动加载
首先,su – 到新创建的用户 拷贝默认的.bashrc过来 1 cp /etc/skel/.bashrc ~/ 然后创建.profile文件 1 vi ~/.profile 粘贴下面的内容 ...
- MySQL DBA工作角色和职责介绍
MySQL DBA分架构DBA,运维DBA和开发DBA三种角色,职责介绍如下:
- 【前端酷站】分享一个纯 Javascript 的图表库与立体像素风制作~
今天小编为大家推荐一个神奇的酷站.ECharts,一个纯 Javascript 的图表库. 以下是各个几个不错的界面的介绍: 首页:http://echarts.baidu.com/ 在首页有完整的说 ...
- 人人网框架导入uidGenerator的ID生成方式
人人网框架导入uidGenerator的ID生成方式 2019-03-11 LIUREN SpringBoot2.0 uidGenerator SpringBoot2.0 uidGener ...
- PL/SQL学习笔记程序单元
一:程序单元组成 一个PL/SQL程序单元主要包括三部分: 声明与定义部分:声明变量.常量.类型等:定义过程.函数等: 执行部分:执行PL/SQL语句:调用过程.参数:处理游标等: 异常处理部分:处理 ...
- PHP会员找回密码功能实现实例介绍
设置思路 1.用户注册时需要提供一个E-MAIL邮箱,目的就是用该邮箱找回密码. 2.当用户忘记密码或用户名时,点击登录页面的“找回密码”超链接,打开表单,并输入注册用的E-MAIL邮箱,提交. 3. ...