基於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})


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章