我只是从FLASK开始,偶然发现了这个错误:
test() missing 1 required positional argument: 'test_ouput'
为什么会这样?在调用函数之前先声明函数,通常,此错误表示调用函数时缺少参数。
def foo(x):
print (x)
foo(x)
所以这行得通,为什么在我的flask脚本中不行?
这是我的“完整”代码:
from flask import Flask, jsonify, request
from flask_pymongo import PyMongo
app = Flask(__name__)
#app.config ['MONGO_DBNAME'] = 'DBfoo'
app.config['MONGO_URI'] = 'mongodb://127.0.0.1:27017/Test'
mongo = PyMongo(app)
@app.route('/TestRouteGet', methods=['GET', 'POST'])
def test(test_ouput):
print (test_output)
def get_Test():
collection = mongo.db.TestCol
if request.method == 'POST':
test_input = "Test BlaBla"
test(test_input)
if __name__ == '__main__':
app.run(debug=True)
发送POST请求时,应该在控制台中打印test_output(“ Test Blabla”)。 感谢您的宝贵时间。
答案 0 :(得分:1)
您的函数需要使用test_output参数,您应该从网址字符串http://flask.pocoo.org/docs/1.0/quickstart/#url-building中获取此参数
@app.route('/TestRouteGet/<test_output>', methods=['GET', 'POST'])
然后,您可以向/ TestRouteGet / insert_your_string发出请求,您的函数将打印收到的字符串。