Мне нужно проверить ввод имени пользователя в форме регистрации, используя javascript вместе с flask в python, но я не знаю, как это реализовать.
Я должен использовать $.get
в части JavaScript и в коде Python, который должен проверять и возвращать jsonifiedied истину или ложь.
Код Python:
@app.route("/check", methods=["GET"])
def check():
"""Return true if username available, else false, in JSON format"""
username = request.args.get("q")
rows = db.execute("SELECT * FROM users WHERE username = :username", username=username)
if len(rows) >= 1 or len(username) < 1:
return jsonify(False)
else:
return jsonify(True)
Часть HTML:
<form action="/register" method="post" id ="register">
<div class="form-group">
<input autocomplete="off" autofocus class="form-control" name="username" placeholder="Username" type="text">
</div>
<div class="form-group">
<input class="form-control" name="password" placeholder="Password" type="password">
</div>
<div class="form-group">
<input class="form-control" name="confirmation" placeholder="Confirm Password" type="password">
</div>
<button class="btn btn-primary" id="submittion" type="submit">Register</button>
</form>
<script>
let input = document.querySelector('input[name=username]');
input.onkeyup = function() {
$.get('/check?q=' + input.value, function(data) {
if (data == "FALSE"){
data.preventDefault()
alert("Username is not available!");
}
});
};
</script>
Он должен предупредить пользователя, если имя пользователя уже существует, после того как оно проверено в SQL.Отладка показывает, что она выполняет поиск по списку имени пользователя, но ничего не предупреждает.