zoukankan      html  css  js  c++  java
  • Django 用户名唯一性校验(ajax)

    实现用户名唯一性校验

    过程

    #新创建工程 test35
    #新创建应用 stu
    # 修改 settings.py
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'stu'
    ]
    #新创建模型 Student,  models.py ,并在库中新增加用户名 zhangsan 、lisi
    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    
    from django.db import models
    
    # Create your models here.
    
    class Student(models.Model):
        sno = models.AutoField(primary_key=True)
        sname = models.CharField(max_length=30,unique=True)
    
    
    #创建迁移文件
    python manage.py makemigrations  stu
    python manage.py migrate
    
    #新增加 url  test35/urls.py
    url(r'^student/',include('stu.urls'))
    # 新增加 stu/urls.py ,添加子路由 url(r'^only/$',views.onlyView), 
    #coding=utf-8
    
    import views
    from django.conf.urls import url
    urlpatterns = [
        url(r'^only/$',views.onlyView),
        url(r'isExist/$',views.isExist)
    ]
    
    # 编辑 views.py
    
    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    
    from django.http import JsonResponse
    from django.shortcuts import render
    from .models import *
    
    # Create your views here.
    def onlyView(request):
        return render(request,'only.html')
    
    
    def isExist(request):
        #接收请求参数
        uname = request.GET.get('uname','')
        #判断数据库当中是否存在
        stuList = Student.objects.filter(sname=uname)
    
        if stuList:
            return JsonResponse({'flag':True})
        return JsonResponse({'flag':False})
    
    
    #新增加 template/only,html
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js"></script>
        <script>
            //onblur:失去焦点 当用户离开输入字段时对其进行验证
            //onfocus:获得焦点
            function checkUname() {
                //获取文本框内容
                var uname = $('#uname').val();
                //非空校验
                if (uname.length==0){
                    $('#unameSpan').html('*');
                    $('#unameSpan').css('color','red');
                }else {
                    //判断唯一性 发送ajax 请求  会将views.py中  'flag':True 或者 flag':False 传回 result;
                    $.get('/student/isExist/',{'uname':uname},function (result) {
                        r = result.flag;
                        //根据服务器端的响应信息进行信息更新
                        if (r){
                            $('#unameSpan').html('此用户名太受欢迎了,请换一个吧~');
                            $('#unameSpan').css('color','red');
                        }else {
                            $('#unameSpan').html('√ 可以使用');
                            $('#unameSpan').css('color','green');
                        }
    
                    })
    
                }
            }
        </script>
    </head>
    <body>
    用户名: <input type="text" name="uname" id="uname" onblur="checkUname()"/><span id="unameSpan"></span>
    </body>
    </html>
    
    #效果 http://127.0.0.1:8000/student/only/  
    1 .输入框未填写内容则显示红色 *  号
    2. 输入框填写内容和数据库中用户名进行比较,如果匹配则显示    此用户名太受欢迎了,请换一个吧~   ,红色字体
    3.输入框填写内容和数据库中用户名进行比较,如果不匹配则显示   √ 可以使用   ,绿色字体
    
    


  • 相关阅读:
    [转]游戏开发指南
    [转]C++接口定义及实现举例
    [转]关于模板函数/模板类编译成DLL
    [转]游戏程序员要求
    [转]如何定位Release程序崩溃原因
    [转]对0基础MFC者的一点建议
    [转]链接警告 LNK4098
    动态调用WCF
    动态添加删除WCF服务类包
    将Xaml文档转成XPS文档[转]
  • 原文地址:https://www.cnblogs.com/lixinliang/p/14144991.html
Copyright © 2011-2022 走看看