Django商城短信和邮箱注册

本章知识点

1、发送邮件

2、发送短信

3、基于django的短信和邮件注册

知识点讲解

一、邮箱注册

1、发送邮件

Smtp:轻量级邮件发送协议,邮件的发送和接收人。我们今天采用163邮箱的smtp服务器

IMAP 发邮件

Pop3 收邮件

Smtp协议格式:

邮件一般由标题,发信人,收件人,邮件内容,附件等构成,发送邮件的时候,要注意 邮件的格式。 这个格式就是 smtp 协议中定义的格式。

2、开启163的smtp服务器(绑定自己的手机)

163邮箱地址:https://mail.163.com/

SSL(Secure Sockets Layer 安全套接层)SSL在传输层对网络连接进行加密

3、设置授权码:

4、代码

(1)、发送纯文本内容

(2)、发送html页面

6、基于django的邮件注册

(1).发送邮件

(1) .点击获取验证码按钮,发送邮件,获取验证码

(2) .将邮箱、验证码、时间戳保存到数据库。

(2).校验功能

(1).从数据库中获取保存的邮箱、验证码、时间戳进行比较

如果都相同则跳转到登陆页面。

如果不正确注册页面进行提示。

代码:

(1)、settings.py中进行配置

EMAIL_HOST_USER = 'python_liurui@163.com'
EMAIL_HOST_PASSWORD = 'admin123'
EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.163.com'
EMAIL_PORT = 994

(2)、模型类

class EmailValid(models.Model):value = models.CharField(max_length=32)  # 验证码email_address = models.EmailField()  # 邮箱地址time = models.DateTimeField()  # 时间戳
<script>$(function () {// 1.获取验证码按钮监听$("#zphone").click(function () {// 2.获取邮箱var email = $("#email").val();$.ajax({url: "/buyer/send_message/?email="+email,type: "GET",data: "",success: function (data) {alert(data)}})})})
</script>

(4)、ajax发送请求视图函数
#ajax发送请求,向邮箱发送邮件
#ajax发送请求,向邮箱发送邮件

def send_message(request):result = {'state':'error','data':''}if request.method == 'GET':#1.获取邮箱recver = request.GET.get('email')  #接受人  @qq.comif recver:try:subject = '校内购物系统发送的校验码'text_content = 'hello,xiaoyuan'value = get_random_data()html_content = '<div><p>您好,你的验证码为:%s,请勿告诉他人</p></div>'%valuemessage = EmailMultiAlternatives(subject,text_content,'13262621737@163.com',[recver])message.attach_alternative(html_content, 'text/html')message.send()except Exception as e:result['data'] = str(e)else:result['state'] = 'success'result['data'] = 'success'#保存到数据库email_valid = EmailValid()email_valid.value = valueemail_valid.time = datetime.datetime.now()email_valid.email_address = recveremail_valid.save()finally:return JsonResponse(result)return render(request, 'buyer/register_mail.html')

(5)、form表单提交的邮箱、验证码、密码

(6)、视图函数

def register_email(request):result = {'state':'error','data':''}if request.method == 'POST':#1.获取表单提交的内容email_addr = request.POST.get('username')  #邮箱code = request.POST.get('code')  #验证码userpass = request.POST.get('userpass')  #密码email = EmailValid.objects.filter(email_address=email_addr).first()if email:'''判断验证码'''if code == email.value:'''判断时间戳'''now = time.mktime(datetime.datetime.now().timetuple())  #当前时间db_time = time.mktime(email.time.timetuple())  #数据库保存时间if now-db_time >= 600:   #一分钟result['data'] = '验证码过期了'#  删除数据库中的信息。email.delete()else:#保存此用户buyer = Buyer()buyer.name = email_addr   #邮箱buyer.password = pwd_encrypt(userpass)  #密码buyer.save()result['state'] = 'success'result['data'] = 'success'#删除数据库中的数据emailvalidemail.delete()#重定向到登录界面return redirect('/buyer/login/')else:result['data'] = '验证码错误'else:result['data'] = '用户不存在'

二、短信注册
1、短信发送平台:http://www.ihuyi.com/

2、注册账户


3、登录


4、首页

5、验证码通知短信
默认是10条免费,API接口信息 APPID 和 APPKEY 需要使用,先保存下来。


6、文档中心下载接口文档


文档浏览:

7、短信内容模板



8、阅读demo,告诉用户使用方式



8、代码
(1).下载requests模块

(2).


#coding:utf-8import requestsurl = "http://106.ihuyi.com/webservice/sms.php?method=Submit" #请求地址#固定的参数
mobile = "13331153360" account = "C85050877" password = ""#请求的头部
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}#数据整合
data = {"account": account,"mobile": mobile,"password": password,"content": "您的验证码是:9527。请不要把验证码泄露给其他人。"
}
#发起请求
response = requests.post(url = url,data = data, headers = headers)
#接收返回内容
resutl = response.content.decode()
print(resutl)

网页的短信与邮箱注册相关推荐

  1. 016:Django商城短信和邮箱注册

    本章知识点 1.发送邮件验证码 2.发送短信验证码 3.基于django的短信和邮件注册 知识点讲解 1.发送邮件 Smtp:轻量级邮件发送协议,邮件的发送和接收人.我们今天采用163邮箱的smtp服 ...

  2. Django短信和邮箱注册、支付宝沙箱的使用

    邮箱注册 发送邮件 Smtp:轻量级邮件发送协议,邮件的发送和接收人.我们今天采用163邮箱的smtp服务器 IMAP 发邮件 Pop3 收邮件 开启163的smtp服务器(绑定自己的手机) 163邮 ...

  3. 网页版短信平台发送教程【图文】

    2021网页版短信平台发送教程[图文] 一.登录账户 在进行短信发送前,请先完成您的账户注册和配置,登录账号->短信->开通产品->根据需求购买事务类或通用运营类资源包. 详情如下图 ...

  4. IFTTT的简单使用-转发安卓手机的短信到邮箱

    我相信大家自己摸索一下也可以玩转起来这个小工具. 背景: IFTTT是if this than that 的缩写,它其实是一种设计理念,当然也是我们现在要使用的软件的名字.在我初步使用看来它是一种图形 ...

  5. Android之调取本地通讯录、发送短信、邮箱、微信发送

    前言:在我们开发中会遇到一些信息发送开发需求,我们那时就会用到我们要选择我们要发送的客户对象.选择发送的方式如短信.邮箱.微信等等方式来进行信息的发送. 如下str为要发送的内容,account 为我 ...

  6. 如何使用短信验证码完成注册功能

    如何使用短信验证码完成注册功能 一. MD5加密工具类 import java.security.MessageDigest; import java.security.NoSuchAlgorithm ...

  7. 手机短信验证码一键注册登录功能开发 1

    1. 首先根据业务分析, 先要在前端填写我们的手机号, 发送短信验证码给我们的用户 对于我们后端来说, 发送验证码就是我们要开发的接口, 手机号就是我们传入的参数,然后就可以编写相应的代码了 @Api ...

  8. android 短信超链接,Android处理网页的短信链接

    最近遇到了很多网页,尤其是通过短信找回密码的网站,其规范格式为106659999,但是各个系统对这个格式支持也不是很统一的,我先后在ios和windows Phone上做了测试,在ios上会跳转到短信 ...

  9. 使用短信登录和注册的流程

    现在各个网站普遍使用的登录认证方式是使用短信认证登录,并且在用户与服务器交互的过程中这部分功能需要被多次调用,所以在项目中不可避免地要包括这一部分,学习之后,在此记录其流程: 实现短信认证登录可以有两 ...

  10. java微信公众号短信验证码_解决微信端公众号网页获取短信验证码ajax重复调用两次的问题...

    问题背景介绍: 微信公众号网页开发的时候,点击发送短信验证码,如果响应时间超长,目前测试是10秒左右(这个10秒左右,是我自己多次测试总结出来的规律) 超过10秒左右,就会自动请求第二遍,这个问题挺恶 ...

最新文章

  1. hihoCoder 1051 补提交卡(贪心,枚举)
  2. 用onerror处理图片获取失败问题
  3. vue2 + vue-router + vuex + iview 入门项目
  4. 泰拉瑞亚服务器权限文件,泰拉瑞亚云服务器权限
  5. .c和.cpp的区别
  6. Spring集成TestNg测试
  7. 推荐系统——开源代码
  8. SQL SERVER With语法[转]
  9. 【laravel5.4】迁移文件的生成、修改、删除
  10. ASP.NET实现页面传值的几种方法
  11. Python 检测系统时间,k8s版本,redis集群,etcd,mysql,ceph,kafka
  12. 开源项目:浏览器前进后退发现请求了接口,也有数据返回,但是前端并没有渲染数据是什么问题?
  13. blender源代码分析----第三方库的说明
  14. mangodb与mysql的区别
  15. PS把模糊的照片变清晰
  16. 台式计算机连接wifi适配器遇到问题,台式机连接wifi不稳定怎么办_台式电脑接wifi会不稳定解决方法-win7之家...
  17. stm32—酒精传感器的初步使用
  18. word中多级列表操作问题
  19. 2021-2025年中国废水泵行业市场供需与战略研究报告
  20. “/”应用程序中的服务器错误的解决办法

热门文章

  1. python苹果手机照片导入电脑_通过python获取苹果手机备份文件中的照片,视频等信息采集...
  2. python实现鼠标自动点击屏幕
  3. Elasticsearch 父子关系
  4. nginx反向代理实现直接域名访问
  5. 【开发环境】Ubuntu 安装 Visual Studio Code 开发环境 ( 下载 Visual Studio Code 安装器 | Ubuntu 安装 deb 包 )
  6. php xml 修改节点值,.NET_XML文件修改节点属性值(多种方法),xml 文件内容: 复制代码 代码如 - phpStudy...
  7. 简单几步解决 svchost 占用资源过高的问题
  8. 乘法鉴相器的matlab仿真,种用MATLAB仿真锁相环方法.PDF
  9. 近年来小学计算机课程目录,小学3-6年级信息技术课程目录(苗逢春版)
  10. 过滤掉Abp框架不需要记录的日志