读取 Flask Web 服务的参数

Read arguments of a Flask Web service

我有一个非常非常基本的 Flask 应用程序,我向其发送了 3 个我想要显示的参数。但是我的问题是应用程序只获取第一个参数,它无法读取其他两个参数的值。这是我的代码:

  from flask import Flask, jsonify, request

  app = Flask(__name__)

  @app.route('/test', methods=['POST'])
  def listapp():
  if request.method == 'POST':
    runID = request.args.get('runID')
    tweetID = request.args.get('TweetID')
    tweet = request.args.get('Tweet')

    return "Run id: " + str(runID) + " tweetID:" + str(tweetID) + " tweet content:" + str(tweet)

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

调用它时得到的结果

 curl -X POST http://127.0.0.1:5000/test?runID=5&TweetID=23&Tweet=6532

Run id: 5 tweetID:None tweet content:None

如何读取最后两个参数的值?同样奇怪的是,当我打印 request.args 的长度时,我一直得到 1。非常感谢任何帮助!

您告诉它 POST,但正在传递 GET 参数。

试试 curl --data "runID=5&TweetID=23&Tweet=6532" http://127.0.0.1:5000/test

您遇到的问题与 Flask 无关,而是与您的 curl 命令有关。当您 运行 您的 curl 命令时,终端将 & 视为命令的结尾。您需要引用 url 才能通过:

curl -X POST "http://127.0.0.1:5000/test?runID=5&TweetID=23&Tweet=6532"