基于jQuery中Ajax请求的注册案例

一.直接上代码

1.register.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #available{
            color: blue;
            display: none;
        }
        #unavailable{
            color:yellow;
            display: none;
        }
    </style>
    <script src="/static/jquery-1.12.4.js"></script>
    <script>
        $(function () {
            $('#uname').blur(function () {
                $.get({
                    url:'/checkname',
                    data:{
                        name:$('#uname').val()
                    },
                    success:function (data) {
                        console.log(data);
                        //返回的结果是一个json字符串
                        let x = JSON.parse(data);//把json字符串转化成为一个js对象
                        if (x['available']){
                            $('#available').css('display' , 'inline');
                            $('#unavailable').css('display' , 'none');
                        }else{
                            $('#available').css('display','none');
                            $('#unavailable').css('display' , 'inline');
                        }
                    }
                });
            });
        });
    </script>
</head>
<body>
<form action="/doregister" method="post">
    <span>用户名:</span>
    <input type="text" required name="username" id="uname">
    <span id="available">用户名可以使用</span>
    <span id="unavailable">用户名已经被占用了</span>

    <br>
    <span>密码:</span><input type="password" required name="password"><br>
    <input type="submit" value="注册">
</form>
</body>
</html>

2. app.py(Flask服务器):

import json

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

@app.route('/register')
def register():
    # 从模板文件夹中呈现具有给定上下文的模板
    return render_template('register.html')

# @app.route('/checkname', methods=['POST']) 列表里可以放post和get,表示支持多种请求
@app.route('/checkname')
def check_name():
    # print(request.args['name'])
    name = request.args['name']
    # 必须返回东西,否则崩
    # 查询数据库,获取到所有的用户名
    username = ['zhangsan', 'lisi', 'wangwu']
    if name in username:
        return json.dumps({'available':False})
    else:
        return json.dumps({'available':True})


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值