#注册forms表单
from django import forms
from captcha.fields import CaptchaField#注册表单验证
class RegisterForm(forms.Form):#error_messages   debug出的错误信息提示,可以指定错误类型
    #邮箱
    email = forms.EmailField(required=True,min_length=6,error_messages={'min_length':u'请输入至少6位的邮箱'})#密码
    password = forms.CharField(required=True,min_length=6,error_messages={'min_length':u'请输入至少6位的密码'})#验证码
    captcha = CaptchaField(error_messages={'invalid':'验证码错误'})
  from django.contrib.auth.hashers import make_password,check_password
from mx_users.forms import RegisterForm
#注册
class RegisterView(View):#显示页面
    def get(self,request):re_form = RegisterForm()context = {'re_form':re_form}return render(request,'mx_users/register.html',context)def post(self,request):#提交表单
        re_form = RegisterForm(request.POST)#判断表单是否合格
        if re_form.is_valid():#获取用户输入邮箱
            email = request.POST.get('email')#判断用户是否注册过,如果注册过,提示用户已经存在
            if UserProfile.objects.filter(email=email):context = {'re_form': re_form,'msg':'用户已经存在'}return render(request, 'mx_users/register.html', context)#用户没有注册过 获取密码加密  存储
            password = request.POST.get('password')#实例化
            users = UserProfile()users.username = emailusers.email = email#没有激活邮箱  用户需要激活邮箱才可以登录
            users.is_active = False
            #密码加密
            users.password = make_password(password)users.save()#注册成功之后发送注册成功信息
            user_mes = UserMes()#保存用户的id
            user_mes.uname = users.id#内容
            user_mes.message = u'欢迎注册喵了个咪网站'
            user_mes.save()#发送激活邮件
            send_re_email(email, send_type='register')return render(request,'mx_users/login.html')#表单不合格
        else:context = {'re_form': re_form}return render(request, 'mx_users/register.html', context)
# 邮件发送配置
# EMAIL_HOST变量为smtp服务器
EMAIL_HOST = "smtp.sina.com"
EMAIL_PORT = 25
EMAIL_HOST_USER = "project_django@sina.com"
EMAIL_HOST_PASSWORD = 'pcy1127?'
EMAIL_USE_TLS = False
# 发件人
EMAIL_FROM = "project_django@sina.com"
#注册apps
#验证码
'captcha'
#激活
from random import Random
from mx_users.models import EmailCord
from django.core.mail import send_mail
from mx0608.settings import EMAIL_FROM#需要生成随机验证码
def random_str(randomlength=8):str = ''
    chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'
    length = len(chars) - 1
    random = Random()for i in range(randomlength):str += chars[random.randint(0,length)]return str#发送邮箱验证码
def send_re_email(email, send_type='register'):code = random_str(16)#创建邮箱验证码实例
    email_code = EmailCord()email_code.code = codeemail_code.email = emailemail_code.send_type = send_typeemail_code.save()#邮件内容
    email_title = ''
    email_body = ''

    if send_type == 'register':#邮件发送的标题和内容
        email_title = '喵了个咪在线网激活链接'
        email_body = '请点击下面的链接激活您的账号:http://127.0.0.1:8000/active/{0}'.format(code)#发送邮件
        send_status = send_mail(email_title,email_body,EMAIL_FROM,[email])if send_status:pass

#html显示

{#表单验证错误信息提示#}
    {% for key,value in re_form.errors.items %}{{ value }}{% endfor %}{{ msg }}
#验证码显示
<label>验&nbsp;&nbsp;码</label>
{{ re_form.captcha }}

教育平台用户注册模块相关推荐

  1. android在线教学,基于Android的移动在线教育平台的设计与实现

    申晋祥+鲍美英 摘要:移动学习是目前互联网时代的一种新型学习方式.本文设计并实现了一个支持移动学习的在线教育平台,该平台基于Android系统,采用多线程技术应用Java语言进行开发,开发工具采用Ec ...

  2. 对某在线教育平台用户使用RFM模型按价值分类

    对某在线教育平台用户使用RFM模型按价值分类 说在前面 项目背景 RFM分析 RFM分析过程 明确目的 分析原因 对R,F,M值进行定义 统计R,F,M值 给R,F,M值"打分" ...

  3. 数仓项目——在线教育平台离线数据仓库效果展示

    背景:基于阿里云的3台ECS云服务器搭建了在线教育平台的离线数据仓库,本文仅用于记录最终的效果,从0到1的实现过程后续进行补充,由于抢占式实例的云服务器按量进行每小时计费,为了避免持续的收费,所以我急 ...

  4. 基于jsp+mysql+Spring+SpringMVC+mybatis的ssm在线培训教育平台

    本在线培训教育课程平台系统主要包括系统用户管理模块.课程类别管理模块.课程信息管理.站内新闻管理.登录模块.和退出模块等多个模块.它帮助在线教育平台实现了信息化.网络化,通过测试,实现了系统设计目标, ...

  5. 【计算机毕业设计】015基于SpringBoot的在线视频教育平台的设计与实现

    一.系统截图(需要演示视频可以私聊) 摘  要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于在线视频教育平台当然也不能排除在外,随着网络技术的不断成熟, ...

  6. 德育php,华苑小学德育教育平台的设计与实现(PHP,MySQL)(含录像)

    华苑小学德育教育平台的设计与实现(PHP,MySQL)(含录像)(毕业论文15000字,程序代码,MySQL数据库) 该系统包括德育教育子系统和管理维护子系统两部分.德育教育子系统主要包括用户登录.德 ...

  7. [附源码]java毕业设计远程在线教育平台

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  8. Django+xadmin 打造线上教育平台(二)-1(旧)

    Django+xadmin 打造线上教育平台 一.完成用户注册和登录功能  1-1.完成首页页面,访问:http://127.0.0.1:8000/index/ 1)html页面代码: <!DO ...

  9. 基于SpringBoot+Vue前后端分离的在线教育平台项目

    基于SpringBoot+Vue前后端分离的在线教育平台项目 赠给有缘人,希望能帮助到你!也请不要吝惜你的大拇指,你的Star.点赞将是对我最大的鼓励与支持! 开源传送门: 后台:Gitee | Gi ...

最新文章

  1. 一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
  2. c语言产生cl.exe错误,vc++6.0执行cl.exe时出错
  3. 第3章 IP寻址
  4. 代码质量的几点新思考
  5. 使用Zookeeper实现leader选举
  6. 点击显示底框颜色,默认显示第一个。
  7. ansible inventory 主机清单配置
  8. docker 镜像修改的配置文件自动还原_基于Docker搭建Redis一主两从三哨兵
  9. ISOIEC27000标准族-ISO27001关联体系
  10. 4019 设备树 Linux device tree 概述
  11. 工业机器人(10)-Matlab Robot Toolbox机械臂工作空间
  12. flink 容错机制(检查点的保存、恢复、检查点算法、保存点、状态一致性的三种级别、end-to-end exactly-once)
  13. linux设置 wps 窗口颜色设置,WPS文字办公—修改默认字体颜色的方法
  14. 西湖论剑2020-BrokenSystems
  15. 图解“华为云潮汕火锅”的“牛里乾坤”
  16. 陕西的饮食历史和特点
  17. ospf在NBMA网络中的配置
  18. 不同的量化交易软件速度差距大吗?
  19. 【前端】水平垂直居中的几种方式
  20. 微信小程序会员卡开发(开发效果示例图+详细介绍+接口说明)

热门文章

  1. 网站群发站内信数据库表设计
  2. SeekBarVolumizer.java
  3. 什么是脚本语言?什么是解释性语言?什么是编译性语言?
  4. Delphi ord 函数
  5. Java方法excel文件转换成xml文件
  6. 常见的BeanUtils.populate异常 解决方案
  7. MySQL简介,什么是数据库?
  8. STM32开发实例 基于STM32单片机的炼钢厂环境检测
  9. 操作无法完成因为文件已在syayem中打开怎么处理删除文件。
  10. Manjaro安装pscs6菜单栏无法显示中文,提示‘$$/ADMDialog/iFontProblemWarning=The Adobe UI font could not be loaded.’