django-registration

先来一个更猛的,即注册的模版文件,下载链接: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>来获得这些模板的细节.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django-rest-framework中,可以使用Django自带的邮件发送功能或第三方库进行邮件发送。如果要自定义邮件内容,可以使用Django自带的邮件模板。 1. 创建邮件模板 在Django项目的templates目录下创建一个名为`email`的文件夹,然后在该文件夹下创建一个名为`email_template.html`的文件,作为邮件模板。模板中可以使用Django的模板语言进行变量替换,例如: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>邮件标题</title> </head> <body> <p>尊敬的{{ username }}:</p> <p>您的账号已经成功注册!</p> </body> </html> ``` 2. 发送邮件 在发送邮件的代码中,使用Django的render_to_string函数将邮件模板渲染为HTML内容,然后将HTML内容作为邮件的正文发送出去,例如: ```python from django.core.mail import send_mail from django.template.loader import render_to_string def send_registration_email(user_email, username): subject = '账号注册成功' # 邮件主题 message = '' # 纯文本邮件内容 from_email = 'noreply@example.com' # 发件人邮箱 recipient_list = [user_email] # 收件人邮箱列表 html_message = render_to_string('email/email_template.html', {'username': username}) # 邮件HTML内容 send_mail(subject, message, from_email, recipient_list, html_message=html_message) ``` 以上代码中,使用render_to_string函数将邮件模板渲染为HTML内容,并将HTML内容作为html_message参数传递给send_mail函数,从而发送包含自定义内容的邮件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值