所以,我做了一个网站,使博客。它一直给我错误:
TypeError: The view function for 'createblog' did not return a valid response. The function either returned None or ended without a return statement.
但问题是在我的python代码中,我的createblogs路由结构如下:
@app.route("/createblog", methods=["POST"])
def createblog():
title = request.args.get("title")
description = request.args.get("description")
content = request.args.get("content")
username = request.args.get("username")
password = request.args.get("password")
if not title or not description or not content or not username or not password:
return
cursor.execute("INSERT INTO blogs (poster_id, title, description, content) VALUES ((SELECT id FROM users WHERE username=? AND password=?), ?, ?, ?)", (username, password, title, description, content))
connection.commit()
return jsonify(status=200)
如你所见,我有return jsonify(status=200)
。这真的很奇怪,因为我用了同样的技巧登录,而且成功了!
@app.route("/register", methods=["POST"])
def register():
username = request.form.get("username")
password = request.form.get("password")
print(username, password)
if not username or not password:
return
cursor.execute(
"INSERT INTO users (username, password) VALUES (?, ?)", (username, password))
connection.commit()
return jsonify(status=200)
我的javascript AJAX 代码:
const xhttp = new XMLHttpRequest();
const postObject = {
username: username.value,
password: password.value,
title: title.value,
description: description.value,
content: content.value,
}
const post = JSON.stringify(postObject);
xhttp.open("POST", "/createblog", true);
xhttp.setRequestHeader("Content-Type", "application/json");
xhttp.send(post);
我已经排除了所有其他原因(例如:HTML)与此问题无关。非常感谢帮助!
我试图重新启动我的开发服务器,希望这会改变一些事情,但没有!这个问题一直存在。然后我试着在stackoverflow上发布一个查询,希望隧道中的光在这个比喻中是对我给出的问题的解释。
1条答案
按热度按时间f4t66c6m1#
你试过在你的createblog函数中打印用户名,密码,标题,描述,内容吗?如错误所述,您将返回None,这意味着您的一个not条件被触发。为了解决这个问题,在 AJAX 请求中,您可以进行一些验证,以确保任何字段的.value不为null。你也可以在后台进行验证。希望这能帮上忙。
对于将来的请求,包含其他信息(如发送到后端的示例有效负载)将很有帮助。很难重现错误并提供其他帮助。