我正在写一个小应用程序。这是代码段。
使用Javascript:
<script type="text/javascript">
function filldata()
{
var sample = document.getElementById("filter-select").value;
jQuery.support.cors = true;
$.post("/test",{"filter_type":sample},function(data,status)
{
alert(data);
});
}
</script>
Flask Code:
@app.route('/test', methods=['POST'])
def test(str):
return str
它给了我500 internal error
当我在调试模式下运行它时,它说:
test() takes exactly one argument(zero given)
答案 0 :(得分:3)
您的代码:
@app.route('/test',methods=['POST'])
def test(str):
return str
期望输入中名为str的变量。 使用flask,在定义路由时,函数的参数代表 url 变量:
# the url have a parameter
@app.route('/user/<id>',methods=['GET'])
def test(id): # we get it here
return user.fromId(id)
要检索查询字符串,您可以使用request.args
。如果您要发送json,请获取正文request.data
或request.json
。
from flask import request
@app.route('/test',methods=['POST'])
def test():
return request.data
答案 1 :(得分:0)
您需要解析Flask&lt; request对象
中的参数from flask import request
@app.route('/test',methods=['POST'])
def test():
return request.form.get('filter_type')
有关详细信息,请参阅quickstart
答案 2 :(得分:0)
在Flask代码段中,您添加了一个参数,但只有在您将URL更改为/test/<str:str>
时才会发送参数。由于它是POST请求,您可以使用request.json
。