TypeError Ajax Post - Flask Python [重复]
Posted
技术标签:
【中文标题】TypeError Ajax Post - Flask Python [重复]【英文标题】:TypeError Ajax Post - Flask Python [duplicate] 【发布时间】:2014-04-17 12:29:46 【问题描述】:刚开始使用 Flask 和 Python。我有一个使用 jQuery ajax 表单库执行 ajax 发布的简单表单。它转到 python 端的函数并将用户添加到 mongoDb 数据库。然后它返回一个真或假。
返回布尔值后,我收到此错误:
TypeError: '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
【问题讨论】:
create_user 是做什么的?你能显示那个函数的代码吗?我猜测 create_user 正在返回某种无法与 jsonify 一起使用的 True/False。您必须为 jsonify 提供一个字典,并且 create_user 应该返回一个字典。 【参考方案1】:尝试返回:
return jsonify(result=result)
查看文档:http://flask.pocoo.org/docs/api/#flask.json.jsonify。
我怀疑create_user()
正在返回一个没有字典表示的布尔类型。
【讨论】:
好吧,这是有道理的。感谢您的帮助!以上是关于TypeError Ajax Post - Flask Python [重复]的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的TypeError:无法读取未定义的属性'ajax'
Uncaught TypeError: Illegal invocation报错简单直接解决方案