Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在CS50 Finance中检查用户名时出现问题_Javascript_Python_Flask - Fatal编程技术网

Javascript 在CS50 Finance中检查用户名时出现问题

Javascript 在CS50 Finance中检查用户名时出现问题,javascript,python,flask,Javascript,Python,Flask,由于某些原因,当用户名不可用时,检查路由不会返回false。有人知道我做错了什么吗 我尝试了各种不同的javascript代码符号,但我没有修改检查代码,因为我觉得它是正确的 以下是python代码: @app.route("/check", methods=["GET"]) def check(): # Return true if username available, else false, in JSON format username = request.form.g

由于某些原因,当用户名不可用时,检查路由不会返回false。有人知道我做错了什么吗

我尝试了各种不同的javascript代码符号,但我没有修改检查代码,因为我觉得它是正确的

以下是python代码:

@app.route("/check", methods=["GET"])
def check():
    # Return true if username available, else false, in JSON format

    username = request.form.get("username")

    taken_usernames = db.execute("SELECT username FROM users")

    if not len(str(username)) > 0:
        return jsonify(False)
    for taken_username in taken_usernames:
        if username == taken_username["username"]:
            return jsonify(False)

    return jsonify(True)
以下是使用上述路径的html代码:

{% extends "layout.html" %}

{% block title %}
    Register
{% endblock %}

{% block main %}
    <form action="/register" method="post" onsubmit="function(event) {
                        event.preventDefault();
                    }">
        <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" type="submit">Register</button>
    </form>
{% endblock %}

{% if get_flashed_messages() %}
    <script>

        var username = document.querySelector('input.username');
        var register = document.querySelector('form');
        register.onsubmit = function(success) {
            $.get('/check?username=' + username, function() {
                if (success == false) {
                document.getElement('form').addEventListener("submit", function(event){
                    event.preventDefault();
                    });
                    alert('Username already taken');
                }
                else {
                    register.submit();
                }

            });
        };


    </script>
{% endif %} 
{%extends“layout.html”%}
{%block title%}
登记
{%endblock%}
{%block main%}
登记
{%endblock%}
{%if get_flashed_messages()%}
var username=document.querySelector('input.username');
var register=document.querySelector('form');
register.onsubmit=函数(成功){
$.get('/check?username='+用户名,函数(){
if(success==false){
document.getElement('form').addEventListener(“提交”),函数(事件){
event.preventDefault();
});
警报(“用户名已被占用”);
}
否则{
注册。提交();
}
});
};
{%endif%}

当用户名不可用时,路由应该返回“false”,但它返回“true”。

如果方法是GET,您可以访问您的数据,如下所示:

request.args.get('username', '')
所以,你需要更换

username = request.form.get("username")


这似乎解决了部分问题,谢谢。但由于某些原因,仍在发送状态代码200而不是400(应该是这样)。是的,我知道,但如何更改此代码?这似乎不起作用。我的代码仍然不会拒绝重复的用户名。没关系,我解决了这个问题。非常感谢你的帮助。
username = request.args.get("username", "")