django 通过ajax完成邮箱用户注册

Posted 雪落忆海

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django 通过ajax完成邮箱用户注册相关的知识,希望对你有一定的参考价值。

一、图片验证码

django-simple-captcha配置

1.在pycharm中,File====》Settings====》Project:项目名====》Project Interpreter====》+====》搜django-simple-captcha  选择0.55以上版本,然后点install package 按钮进行安装

2.项目名/urls.py中添加代码:

from django.urls import path,include
......

from users.views import IndexView
......

urlpatterns = [
    ......
    
    #配置验证码

    path(captcha/,include(captcha.urls)),
    #首页url
    path(‘‘, IndexView.as_view(), name=index),

    ......
]

 

3.settings.py中添加一个注册信息

INSTALLED_APPS = [

        ......
    
    captcha
]

4.打开终端Terminal执行更新数据库命令:

python manage.py makemigrations
python manage.py migrate

5.在users目录下新建form.py文件:

from django import forms
from captcha.fields import CaptchaField


class RegisterForm(forms.Form):
    """注册信息的验证"""
    username=forms.CharField(required=True,error_messages={invalid:该用户名已被占用})
    email=forms.EmailField(required=True,error_messages={invalid:邮箱格式错误})#邮箱格式,且唯一
    password=forms.CharField(min_length=5,error_messages={invalid:密码长度不能小于5})#字符串格式,且长度不能小于5
    captcha=CaptchaField(error_messages={invalid:验证码错误})

 6.在users/views.py中添加代码:

from users.form import RegisterForm

class IndexView(View): """首页""" def get(self,request): register_form=RegisterForm() return render(request,index.html,{register_form:register_form})

 

7.在前端首页index.html中显示验证码、输入框

html

<div class="modal fade" id="register" tabindex="-1" role="dialog">

    ......

<!--模态框中关于注册的内容start-->
      <div class="modal-body">
        ......
            
            <P><div style="display: inline-block;width:100px;text-align: center"><b >验证码:</b></div>

<!--验证码start-->

            <div class="cap">{{ register_form.captcha }}</div>

<!--验证码end-->

</P>
            {% csrf_token %}
        </form>
          <p><div style="margin-left: 100px;background-color: orangered;width:150px;text-align: center"><b></b></div></p>
      </div>

<!--模态框中关于注册的内容end-->

    ......

css

<style>
    .cap{
        display: inline-block;
        width: 280px;
        height: 36px;
    }
    .cap img{
        float: right;
    }
</style>

js 跟刷新验证码相关(需要先引入jQuery)

$(function(){
        $(‘.captcha‘).css({
        ‘cursor‘: ‘pointer‘
    });
    /*# ajax 刷新*/
        $(‘.captcha‘).click(function(){
            console.log(‘click‘);
            $.getJSON("/captcha/refresh/",function(result){
                $(‘.captcha‘).attr(‘src‘, result[‘image_url‘]);
                $(‘#id_captcha_0‘).val(result[‘key‘])
            });
        });
    })

二、ajax邮箱注册

 



以上是关于django 通过ajax完成邮箱用户注册的主要内容,如果未能解决你的问题,请参考以下文章

django之jquery完成ajax

django之使用jquery完成ajax

30Django实战第30天:修改邮箱和用户信息

邮箱注册登录 之 发送邮箱 | Django

django基础知识之Ajax:

Django用户注册邮箱验证实践