TypeError Ajax POST - Flask Python

3 投票
1 回答
583 浏览
提问于 2025-04-17 22:03

我刚开始学习Flask和Python。我有一个简单的表单,它使用jQuery的ajax表单库进行ajax请求。这个请求会调用Python那边的一个函数,把用户添加到mongoDb数据库里。然后它会返回一个真或假的结果。

但是在返回这个真假值的时候,我遇到了一个错误:

类型错误:'bool'对象不可迭代

最近的错误追踪信息:

File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__

return self.wsgi_app(environ, start_response)

Python部分

@app.route('/signup', methods=['GET', 'POST'])
def signup():
    if request.method == 'GET':
        return render_template('signup.html')
    if request.method == 'POST':
        result = create_user(request.form["firstname"],
                    request.form["lastname"],
                    request.form["username"],
                    request.form["password"],
                    request.form["email"])
        return jsonify(result)

JavaScript部分

<script type="application/javascript">
    $(document).ready(function() {
            // bind 'myForm' and provide a simple callback function
            $('#signupform').ajaxForm(function() {
                alert("Thank you for your comment!");
            });
        });
</script>

创建用户函数

def create_user(form_first_name, form_last_name, form_username, form_password, form_email):
    user = User()
    user.first_name = form_first_name
    user.last_name = form_last_name
    user.last_modified = datetime.now()
    user.username = form_username
    user.password = form_password
    user.email = form_email
    if user.save():
        return True
    else:
        return False

1 个回答

0

试着返回:

return jsonify(result=result)

可以看看这个文档:http://flask.pocoo.org/docs/api/#flask.json.jsonify

我怀疑 create_user() 这个函数返回的是一个布尔值(就是对或错),而布尔值是没有字典形式的。

撰写回答