gpt4 book ai didi

python - 接受参数 : Missing 1 required positional argument 的 flask get 方法

转载 作者:行者123 更新时间:2023-12-05 01:13:11 25 4
gpt4 key购买 nike

我有以下 flask 代码

from flask import Flask, jsonify, request                                                                                                                                                                          
from webargs import fields
from sqlalchemy import create_engine, MetaData, Table, select
from flask_cors import CORS
engine = create_engine('...')
////
app = Flask(__name__)
cors = CORS(app, resources={r"/list*": {"origins": "*"}})

@app.route('/list-vessels', methods=['GET'])
def list_vessels():
vessel_list = []
s = select([vesseldetail.c.Vessel])
rp = connection.execute(s)
for row in rp:
vessel_list.extend(list(row))
return jsonify(vessel_list)

@app.route('/list-keydates', methods=['GET'])
def list_keydates(vesselname):
vesselname = request.args['vesselname']
intervention_list = []
keydate_list = []
s = select([keydate.c.Intervention, keydate.c.Date])
s = s.where(keydate.c.VESSEL==vesselname)
rp = connection.execute(s)
for row in rp:
intervention_list.append((row[0]))
keydate_list.append((row[1]))
return jsonify({"keydates": keydate_list, "intervention": intervention_list})

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

第二个端点 'list-keydates' 返回一个 TypeError: list_keydates() missing 1 required positional argument: 'vesselname' 即使我在查询字符串中传递了一个容器名称。我做错了什么?

最佳答案

定义url时缺少参数vesselname,请尝试以下操作:

...
@app.route('/list-keydates/<vesselname>', methods=['GET'])
def list_keydates(vesselname):
intervention_list = []
keydate_list = []
s = select([keydate.c.Intervention, keydate.c.Date])
s = s.where(keydate.c.VESSEL==vesselname)
...

url 应该是 http://.../list-keydates/name-of-the-vessel

这样您就不必从请求参数中获取容器名称,它的值将被放置在变量函数中。

希望它适合你

关于python - 接受参数 : Missing 1 required positional argument 的 flask get 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60831945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com