0

我已经完成了我的功能,但是当我运行网络服务器时,我收到以下错误:

TypeError : index() 缺少 1 个必需的位置参数:'input'

这是我的代码:

from sklearn import tree
from flask import Flask

app = Flask(__name__)

@app.route('/', methods=['GET','POST'])
def index(input):
    input = [[1,1,2,3,3,1,1,2]]

    data = pd.read_csv('datawadek.csv')
    y = data.KELAS
    x = data.drop('KELAS', axis = 1)

    cart = tree.DecisionTreeClassifier()

    cart = cart.fit(x,y)

    return cart.predict(input)

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

我对python编程很陌生。请帮助我提出任何建议或解决方案。

祝你今天过得愉快

4

1 回答 1

2

我假设您想在烧瓶中将输入作为参数传递。您不能将输入定义为烧瓶端点函数的参数。相反,您应该像这样读取所述函数中的参数request.args.get

@app.route('/', methods=['GET','POST'])
def index():
    input = request.args.get('input')
    if input is None:
        input = [[1,1,2,3,3,1,1,2]]

来自python 文档

request对象可从所有烧瓶 api 自动访问,它包含您通过 api 传递的所有数据。要访问传入的请求数据,您可以使用全局请求对象。Flask 为您解析传入的请求数据,并让您通过该全局对象访问它。如果您处于多线程环境中,Flask 内部可确保您始终获得活动线程的正确数据。

编辑:

在评论中,我们有一个带有路径参数的类似示例:

@app.route('/<input>', methods=['GET','POST'])
def index(input):

最终结果将与我上面的初始答案相同,但从设计的角度来看不太实用。您将使用 post 方法来传递数据数组,在这种情况下,数据应该在请求中。

不这样做的另一个原因是,您还应该始终避免将数组作为路径参数传递,除非

于 2019-11-19T05:52:23.777 回答