先来一个更猛的,即注册的模版文件,下载链接:http://download.csdn.net/download/huanhuan_tiantian/4772819(我的博客资源)
1.安装:pip install django-registration
2.安装好后, 你可以在任何你开发的基于Django的项目中添加 django-registration.默认的安装设置将通过以下流程实现用户的注册:
- 一个用户通过提供用户名,邮箱和密码注册一个帐号.
- 通过以上信息, 一个新的``User``对象被创建,并且自身的``is_active``属性设置为``False``. 同时生成并储存一个激活码, 并且发送一封含有点击激活账户 链接的email给用户.点击激活链接之后, 新帐号被激活 (``is_active``属性被设置为``True``).之后用户即可登录帐号.
需要注意的是默认的流程需要安装``django.contrib.auth``, 另外也建议安装好``django.contrib.sites``. 你还需要一个能工作的邮件服务器(用来发送激活邮件),并且通过对Django进行相关设置保证其可以使用这个邮件服务器. (更多细节查阅<http://docs.djangoproject.com/en/dev/topics/email/>).
3.设置
- 首先将``registration``添加进你项目中的``INSTALLED_APPS``设置,并且设定另一个配置:`ACCOUNT_ACTIVATION_DAYS``这代表了用户注册后需要激活账户的天数.如果在这期间用户没有激活账户,此帐号将已未激活状态永久的保留下来,并会被 django-registration 的维护程序删除.
举个例子, 你也许会如下设置Django的settings文件::
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.sites',
'registration',
# ...其他安装的应用...
)
ACCOUNT_ACTIVATION_DAYS = 7# 一周的激活时间; 你有可能或者肯定会使用一个不同的数值.
当你这么做之后, 运行 ``manage.py syncdb`` 来安装默认设置需要用到的model.
- 设置 URL:(r'^accounts/', include('registration.backends.default.urls')),之后用户可以通过访问以下URL来注册``/accounts/register/``, 以及登录 (激活后)``/accounts/login/``, 等等.具体查看registration.backends.default.urls。
- 需要使用到的模板
默认安装的情况下, 你需要创建一些 django-registration 需要的模板,以及``django.contrib.auth``中的视图可能需要的其他模板. django-registration需要的模板如下; 需要注意的是, 除了账户激活邮件的模板外,其他模板全部都使用``RequestContext``并且都会接收由`内容处理器context processors<http://docs.djangoproject.com/en/dev/ref/templates/api/#id1>提供的其他变量.
模板1:**registration/registration_form.html**
用来显示用户注册时将填写的表单. 默认情况有如下的内容:``form``注册的表单. 可以作为一些``django.forms.Form``中的子类, 想知道在模板中如何显示表单,可以参考`Django 有关表单的文档 <http://docs.djangoproject.com/en/dev/topics/forms/>`
模板2:**registration/registration_complete.html**
用于成功完成注册表单之后. 这个模板没有自己的变量内容,可以仅简单通知用户一封包含有账户激活内容的邮件已发送.
模板3:**registration/activate.html**
在账户激活失败时使用. 默认情况有如下的内容:``activation_key``在尝试激活期间使用的激活码.
模板4:**registration/activation_complete.html**
在用户成功激活账户之后使用. 这个模板没有自己的变量内容, 可以仅简单通知用户他们的账户现在已经激活.
模板5:**registration/activation_email_subject.txt**
用来生成激活邮件的主题. 因为邮件的主题必须是单独一行的文本,任何输出到这个模板的内容在使用前都会被强制转换成单独一行,该模板有如下内容:``activation_key``新账户的激活码.``expiration_days``账户激活期限的天数.``site``一个展现用户注册后页面的对象; 取决于``django.contrib.sites``是否已经安装, 该对象可以是以下两者中其中一个的实例``django.contrib.sites.models.Site``(如果sites应用已经安装) 或者``django.contrib.sites.models.RequestSite``(如果没有)要了解这些对象实例的细节, 可以查阅`Django sites 框架的文档<http://docs.djangoproject.com/en/dev/ref/contrib/sites/>`.
模板6:**registration/activation_email.txt**
用来生成激活邮件的内容. 将会显示一个用户点击后即可激活账户的链接. 该模板有以下内容:``activation_key``新账户的激活码.
``expiration_days``账户激活期限的天数.``site``一个展现用户注册后页面的对象; 取决于``django.contrib.sites``是否已经安装,
该对象可以是以下两者中其中一个的实例``django.contrib.sites.models.Site``(如果sites应用已经安装) 或者``django.contrib.sites.models.RequestSite``(如果没有). 要了解这些对象实例的细节, 可以查阅`Django sites 框架的文档 <http://docs.djangoproject.com/en/dev/ref/contrib/sites/>.注意这些用来生产激活账户邮件的模板使用的后缀是``.txt``,而不是``.html``.因为HTML邮件普遍存在的被厌恶情绪和操作问题,django-registration 默认使用纯文本邮件,并且这些模板仅简单输出纯文本而不是HTML.
为了使用``django.contrib.auth``(上文提到过的由你在URLconf中设置的)的视图,你还需要创建这些视图需要使用的模板. 查阅`Django 的用户认证系统<http://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.views.login>来获得这些模板的细节.