我有以下烧瓶代码
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)
Run Code Online (Sandbox Code Playgroud)
TypeError: list_keydates() missing 1 required positional argument: 'vesselname'
即使我在查询字符串中传递容器名称,第二个端点“list-keydates”也会返回 a 。我究竟做错了什么?
vesselname
定义 url 时缺少参数,请尝试以下操作:
...
@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)
...
Run Code Online (Sandbox Code Playgroud)
网址应该是http://.../list-keydates/name-of-the-vessel
这样你就不必从请求参数中获取容器名称,它的值将被放置在变量函数中。
希望它适合你
归档时间: |
|
查看次数: |
19647 次 |
最近记录: |