• Django-----邮件发送


    #邮箱发送----------需要正则验证  import re
    class Index(View):
    def get(self,request):
    return HttpResponse('ok')
    def post(self,request):
    mes = {}
    # 1.获取数据
    email = request.POST.get('email')
    # 2.验证
    if not email:
    mes['code']=20020
    mes['message']='邮箱不能为空'
    return JsonResponse(mes)
    # 正则验证
    ret = '^([a-zA-Z]|[0-9])(w|-)+@[a-zA-Z0-9]+.([a-zA-Z]{2,4})$'
    if not re.match(ret,email):
    mes['code']=20030
    mes['message']='邮箱不能为空格式不合法'
    return JsonResponse(mes)
    # 3.生成注册码
    # 定义验证码的备选值
    str = '1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm' # 随机选取4个值作为验证码
    rand_str = ''
    for i in range(0, 4):
    rand_str += str[random.randrange(0, len(str))]
    # 存入session
    request.session['code']=rand_str
    # 4.发送邮件
    title = '美多商场-用户注册'
    content = '您的注册码是:{}'.format(rand_str)
    # 发件人
    sender = settings.EMAIL_FORM
    # 收件人[]
    email_list = [email]
    send_mail(title,content,sender,email_list)
    mes['code']=200
    mes['message']='注册码已经发送邮箱,请查收'
    return JsonResponse(mes)
    
    
    HTML  里面
    <!DOCTYPE html>
    {#引入静态文件#}
    {% load staticfiles %}
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>注册</title>
    <script src="{% static 'admin/js/jquery-1.12.4.min.js' %}"></script>
    </head>
    <body>
    {{mes}}
    <form action="" method="POST" id='regform'> {# id 精确到表单位置#}
    用户名:<input name='name'><br>
    密码:<input name='passwd'><br>
    邮箱:<input name='email' id='email'>
    {#赋值给id 用ajax刷新数据#}
    <button id='btncode'>获取注册码</button><br>
    {# 格式不正确则将信息展示出来#}
    <label for="" style="color:red" id='msg'></label><br>
    注册码:<input name='code'><br>
    <button type="submit" id='btnreg' onclick='sub()'>注册</button>
    </form>
    </body>
    <script>
    function sub(){
    $('msg').text('') 
    $('#regform').unbind('submit').submit()
    }
    $('#btncode').click(function(){ //验证码点击事件
    //阻止表单默认提交
    $('#regform').submit(function(event){
    event.preventDefault()
    })
    var email = $('#email').val() //逻辑处理
    var reg = new RegExp(/^([a-zA-Z]|[0-9])(w|-)+@[a-zA-Z0-9]+.([a-zA-Z]{2,4})$/);
    if (!reg.test(email)) //检测(邮箱的输入是否符合正则表达式)字符串是否符合正则表达式
    { //alert('邮箱格式不正确')
    $('#msg').text('邮箱格式不正确')
    return; //如果验证不通过直接终止函数运行
    }
    $.ajax({
    url:'/index/', //发送地址
    type:'post', //请求方式
    data:{'email':email}, //参数
    dataType:JSON,
    success:function(res){
    // console.log(res)
    alert(res.mes)
    }
    })
    })
    //juery 异步刷新调用
    </script>
    </html>
    
    
  • 相关阅读:
    defineProperty的使用
    js题库全集
    如何将多个文件夹中的文件合并到一个文件夹中
    CYQ.Data V5 MDataTable 专属篇介绍
    读取和写入配置文件内容的方法
    面对代码中过多的if...else的解决方法
    SQL语句--删除掉重复项只保留一条
    获取当前时间
    Stopwatch 类用于计算程序运行时间
    正则表达式手册
  • 原文地址:https://www.cnblogs.com/xinzaiyuan/p/12382586.html
Copyright © 2020-2023  润新知