View function did not return a response
。我该如何解决?from flask import Flask
app = Flask(__name__)
def hello_world():
return 'test'
@app.route('/hello', methods=['GET', 'POST'])
def hello():
hello_world()
if __name__ == '__main__':
app.run(debug=True)
当我尝试通过添加静态值而不是调用函数来对其进行测试时,它可以工作。 >
@app.route('/hello', methods=['GET', 'POST'])
def hello():
return "test"
#1 楼
以下内容不会返回响应:@app.route('/hello', methods=['GET', 'POST'])
def hello():
hello_world()
您的意思是说...
@app.route('/hello', methods=['GET', 'POST'])
def hello():
return hello_world()
注意在此固定功能中添加了
return
。#2 楼
无论在视图函数中执行什么代码,视图都必须返回Flask识别为响应的值。如果函数不返回任何内容,则等效于返回None
,这不是有效的响应。除了完全省略
return
语句外,另一个常见错误是仅在某些情况下返回响应案件。如果您的视图基于if
或try
/ except
具有不同的行为,则需要确保每个分支都返回响应。这个错误的示例不会针对GET请求返回响应,因此需要
if
之后的返回语句:@app.route("/hello", methods=["GET", "POST"])
def hello():
if request.method == "POST":
return hello_world()
# missing return statement here
这个正确的示例返回成功和失败的响应(并记录失败以进行调试): >
@app.route("/hello")
def hello():
try:
return database_hello()
except DatabaseError as e:
app.logger.exception(e)
return "Can't say hello."