0

我是 API 和 python 的新手。实际上,在对在 RI 中找到支持水管工的免费主机感到失望之后,决定通过 python 尝试它。简单的问题是我有一个简单的函数,它接受两个数字参数并使用给定的 CSV 文件进行一些计算并返回一个数字(我只是在 R 中由本地主机中的管道工完成)。现在在python中进行测试已经编写了以下代码:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "hello world!"

if __name__ == '__main__':
    app.run(debug=True)

好吧,这可以正常工作。但是当我尝试制作一个函数来接受这样的参数时:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello(a):
    return a + 2

if __name__ == '__main__':
    app.run(debug=True)

我得到这个页面,上面说我没有通过参数。

在此处输入图像描述

我的主要问题是我如何传递论点?(例如,在 R 管道工创建的 API 中,我将其称为localhost/5000/?a=2:)

我的另一个问题是,这种 API 主机和请求可能是 Heroku 之类的吗?

4

3 回答 3

3

来自Flask 文档

您可以通过使用 标记部分来将可变部分添加到 URL <variable_name>。然后,您的函数接收<variable_name>作为关键字参数。或者,您可以使用转换器来指定参数的类型,例如<converter:variable_name>.

所以在你的情况下,这将是:

@app.route("/<int:a>")
def hello(a):
    return a + 2

其他选择是使用request data

于 2018-05-25T13:10:44.377 回答
0

您需要在装饰器@app.route 中包含参数“a”:

@app.route('/<int:a>')
def hello(a):
   return a + 2
于 2018-05-25T13:00:00.977 回答
0

您也可以这样使用它,将名称作为参数传递!

@app.route('/helloworld/<Name>')
def helloworld(Name):
    print Name

另一个实现就是这样,请阅读 python-flask 文档!

@app.route("/<int:a>")
def hello(a):
    return a + 2
于 2018-05-25T13:12:33.570 回答