如何访问查询参数或Flask路由中的查询字符串?这在Flask文档中并不明显。

下面的示例路由/数据说明了我想要访问该数据的上下文。如果有人请求example.com/data?abc=123这样的东西,我想访问字符串?abc=123,或者能够检索像abc这样的参数值。

@app.route("/data")
def data():
    # query_string = ???
    return render_template("data.html")

当前回答

对查询字符串尝试这样做:

from flask import Flask, request

app = Flask(__name__)

@app.route('/parameters', methods=['GET'])
def query_strings():

    args1 = request.args['args1']
    args2 = request.args['args2']
    args3 = request.args['args3']

    return '''<h1>The Query String are...{}:{}:{}</h1>''' .format(args1,args2,args3)


if __name__ == '__main__':

    app.run(debug=True)

输出:

其他回答

下面的实现对我来说很有效。

from flask import request
def getVerificationStatus():
try:
    requestId=int(request.args.get('requestId'))
    print(requestId)
    status= verificationStepRepository.getVerificationStatus(requestId)
    return tb.responsify(200, "success", status)
except Exception as e:
    return errorHandler.dispatchInternalServerError(str(e))

如果请求是GET,我们传递一些查询参数,

fro`enter code here`m flask import request
@app.route('/')
@app.route('/data')
def data():
   if request.method == 'GET':
      # Get the parameters by key
      arg1 = request.args.get('arg1')
      arg2 = request.args.get('arg2')
      # Generate the query string
      query_string="?arg1={0}&arg2={1}".format(arg1, arg2)
      return render_template("data.html", query_string=query_string)

对查询字符串尝试这样做:

from flask import Flask, request

app = Flask(__name__)

@app.route('/parameters', methods=['GET'])
def query_strings():

    args1 = request.args['args1']
    args2 = request.args['args2']
    args3 = request.args['args3']

    return '''<h1>The Query String are...{}:{}:{}</h1>''' .format(args1,args2,args3)


if __name__ == '__main__':

    app.run(debug=True)

输出:

这个准则对我很有效:

from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def search():
   query = request.args
   for key,value in query.items():
      print(key,value)
    return "Hello World"

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

我来这里是寻找查询字符串,而不是如何从查询字符串中获取值。

请求。query_string返回URL参数为原始字节字符串(参考1)。

使用request.query_string的示例:

from flask import Flask, request

app = Flask(__name__)

@app.route('/data', methods=['GET'])
def get_query_string():
    return request.query_string

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

输出:

引用:

query_string的官方API文档