zoukankan      html  css  js  c++  java
  • 网站用户的注册与管理

    django-registration安装与设置

    • 执行命令 pip install django-registration

    此次frameword 会运用django原有的auth架构

    • 在默认的情况下,django-registration只需要在setting.py中设置一个常数,用来指定启动码的天数,
        ACCOUNT_ACTIVATION_DAYS = 7
    
    INSTALLED_APPS = (
      #  'registration', #should be immediately above 'django.contrib.admin'#测试可有可无
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'oneapp01',
        'captcha',#防伪机制包
        'anymail',#发邮件用
    
    )
    
    • url.py添加:
        url(r'^accounts/',include('registration.backends.hmac.urls')),
    

    任何指定的/accounts/的网址都会送到registration检查有符合的项,其中最重要的是/accounts/register,只要浏览他,就会自动进入用户注册程序

    建立django-registration 所需的模板

    当用户单击“注册”按钮后,django-registration 就会开始调用一连串的模板以及相关文本文件,这些是我们需要自己写的。所有的模板都必须放在 templates 目录下的 registration 文件夹下。

    • registration_form.html : 显示注册窗体的网页,默认使用 form 变量作为窗体各字段的内容
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    {% for message in messages %}
        <div class='alert alert-{{message.tags}}'>{{ message }}</div>
    {% endfor %}
    <h3>注册</h3>
    <form action="." method="post">
        {% csrf_token %}
        <table>
            {{ form.as_table }}
        </table>
        <input type="submit" value="注册喔">
        <br/>
    </form>
    </body>
    </html>
    
    • registration_complete.html : 填写完注册窗体,单击“提交”按钮后显示的信息页面
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    {% for message in messages %}
        <div class='alert alert-{{message.tags}}'>{{ message }}</div>
    {% endfor %}
    
    <h3>感谢你的注册</h3>
    <p>别忘了到你注册的电子邮箱中启动账号</p>
    
    </body>
    </html>
    
    • activation_complete.html : 当账号顺利完成启用时会显示的页面
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    {% for message in messages %}
        <div class='alert alert-{{message.tags}}'>{{ message }}</div>
    {% endfor %}
    <h3>账号启动成功</h3>
    </body>
    </html>
    
    • activate.html : 当账号启用失败时会显示的页面
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>.
    {% for message in messages %}
        <div class='alert alert-{{message.tags}}'>{{ message }}</div>
    {% endfor %}
    <h3>启动失败</h3>
    </body>
    </html>
    
    • activation_email.txt : 在发送启用邮件时使用的邮件内容
    赶紧点击激活
    用户:{{ user }}
    在网站:{{site }}注册
    你的连接地址:http://{{ site }}/accounts/activate/{{ activation_key }}
    将于{{ expiration_days}}后过期
    
    • activation_email_subject.txt : 在发送启用邮件时使用的邮件主题
    感谢你的注册,这是启动邮件
    

    注意:由于 django-registration 会使用到 电子邮件发送功能,因此应该先设置好 Django 的电子邮件收发功能,可以使用 mailgun 来进行电子邮件收发。

    要安装pip install django-anymaildjango-registration才能调用mailgun api发送激活邮件

    • 然后我们在 Django 项目中的 setting.py 文件中添加
        INSTALLED_APPS = [
            # ...
            "anymail",
            # ...
        ]
        
        #发送邮件
        ANYMAIL = {
            "MAILGUN_API_KEY": "fb4e6849f5db78a067175db522de16a0-8889127d-316be5fc",
            "MAILGUN_SENDER_DOMAIN": 'sandbox65a95005dea0413aac69e0f99ae6e521.mailgun.org',  # your Mailgun domain, if needed
        }
        EMAIL_BACKEND = "anymail.backends.mailgun.EmailBackend"  # or sendgrid.EmailBackend, or...
        DEFAULT_FROM_EMAIL = "you@example.com"  # if you don't already have this in settings
    

    很多集成了,不用自己写view对应逻辑函数,不用自己写url对应的网址,不用自己写注册html用到的model.form,不用自己写调用的邮件发送函数

    附上运行截图

  • 相关阅读:
    P4782 【模板】2-SAT 问题 && 2-SAT问题
    C#连接MySql数据库
    C# 不同类型数组之间的转换
    C#之一维数组,冒泡排序,输入输出案例
    C++之结构体的另类使用
    visual c++ 中的stdafx.h头文件的作用
    C#Windows窗体组成基本思路和控件使用
    C++内存管理
    C++之线程信号量机制
    C#读取文件内容,包括ArrayList使用和类型转换
  • 原文地址:https://www.cnblogs.com/guguobao/p/9391598.html
Copyright © 2011-2022 走看看