教育平台用户注册模块
#注册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>验 证 码</label> {{ re_form.captcha }}
教育平台用户注册模块相关推荐
- android在线教学,基于Android的移动在线教育平台的设计与实现
申晋祥+鲍美英 摘要:移动学习是目前互联网时代的一种新型学习方式.本文设计并实现了一个支持移动学习的在线教育平台,该平台基于Android系统,采用多线程技术应用Java语言进行开发,开发工具采用Ec ...
- 对某在线教育平台用户使用RFM模型按价值分类
对某在线教育平台用户使用RFM模型按价值分类 说在前面 项目背景 RFM分析 RFM分析过程 明确目的 分析原因 对R,F,M值进行定义 统计R,F,M值 给R,F,M值"打分" ...
- 数仓项目——在线教育平台离线数据仓库效果展示
背景:基于阿里云的3台ECS云服务器搭建了在线教育平台的离线数据仓库,本文仅用于记录最终的效果,从0到1的实现过程后续进行补充,由于抢占式实例的云服务器按量进行每小时计费,为了避免持续的收费,所以我急 ...
- 基于jsp+mysql+Spring+SpringMVC+mybatis的ssm在线培训教育平台
本在线培训教育课程平台系统主要包括系统用户管理模块.课程类别管理模块.课程信息管理.站内新闻管理.登录模块.和退出模块等多个模块.它帮助在线教育平台实现了信息化.网络化,通过测试,实现了系统设计目标, ...
- 【计算机毕业设计】015基于SpringBoot的在线视频教育平台的设计与实现
一.系统截图(需要演示视频可以私聊) 摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于在线视频教育平台当然也不能排除在外,随着网络技术的不断成熟, ...
- 德育php,华苑小学德育教育平台的设计与实现(PHP,MySQL)(含录像)
华苑小学德育教育平台的设计与实现(PHP,MySQL)(含录像)(毕业论文15000字,程序代码,MySQL数据库) 该系统包括德育教育子系统和管理维护子系统两部分.德育教育子系统主要包括用户登录.德 ...
- [附源码]java毕业设计远程在线教育平台
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- Django+xadmin 打造线上教育平台(二)-1(旧)
Django+xadmin 打造线上教育平台 一.完成用户注册和登录功能 1-1.完成首页页面,访问:http://127.0.0.1:8000/index/ 1)html页面代码: <!DO ...
- 基于SpringBoot+Vue前后端分离的在线教育平台项目
基于SpringBoot+Vue前后端分离的在线教育平台项目 赠给有缘人,希望能帮助到你!也请不要吝惜你的大拇指,你的Star.点赞将是对我最大的鼓励与支持! 开源传送门: 后台:Gitee | Gi ...
最新文章
- 一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
- c语言产生cl.exe错误,vc++6.0执行cl.exe时出错
- 第3章 IP寻址
- 代码质量的几点新思考
- 使用Zookeeper实现leader选举
- 点击显示底框颜色,默认显示第一个。
- ansible inventory 主机清单配置
- docker 镜像修改的配置文件自动还原_基于Docker搭建Redis一主两从三哨兵
- ISOIEC27000标准族-ISO27001关联体系
- 4019 设备树 Linux device tree 概述
- 工业机器人(10)-Matlab Robot Toolbox机械臂工作空间
- flink 容错机制(检查点的保存、恢复、检查点算法、保存点、状态一致性的三种级别、end-to-end exactly-once)
- linux设置 wps 窗口颜色设置,WPS文字办公—修改默认字体颜色的方法
- 西湖论剑2020-BrokenSystems
- 图解“华为云潮汕火锅”的“牛里乾坤”
- 陕西的饮食历史和特点
- ospf在NBMA网络中的配置
- 不同的量化交易软件速度差距大吗?
- 【前端】水平垂直居中的几种方式
- 微信小程序会员卡开发(开发效果示例图+详细介绍+接口说明)
热门文章
- 网站群发站内信数据库表设计
- SeekBarVolumizer.java
- 什么是脚本语言?什么是解释性语言?什么是编译性语言?
- Delphi ord 函数
- Java方法excel文件转换成xml文件
- 常见的BeanUtils.populate异常 解决方案
- MySQL简介,什么是数据库?
- STM32开发实例 基于STM32单片机的炼钢厂环境检测
- 操作无法完成因为文件已在syayem中打开怎么处理删除文件。
- Manjaro安装pscs6菜单栏无法显示中文,提示‘$$/ADMDialog/iFontProblemWarning=The Adobe UI font could not be loaded.’