如何访问Flask路由中的查询参数或查询字符串?这在Flask文档中并不明显。
下面的示例路由/data
说明了我希望访问该数据的上下文。如果有人请求像example.com/data?abc=123
这样的东西,我希望能够访问字符串?abc=123
,或者能够检索像abc
这样的参数值。
@app.route("/data")
def data():
# query_string = ???
return render_template("data.html")
发布于 2012-08-02 17:14:53
from flask import request
@app.route('/data')
def data():
# here we want to get the value of user (i.e. ?user=some-value)
user = request.args.get('user')
发布于 2012-08-03 00:29:15
完整的URL以request.url
形式提供,查询字符串以request.query_string.decode()
形式提供。
下面是一个例子:
from flask import request
@app.route('/adhoc_test/')
def adhoc_test():
return request.query_string
要访问查询字符串中传递的单个已知参数,可以使用request.args.get('param')
。据我所知,这是“正确”的做法。
ETA:在继续之前,你应该问问自己为什么要查询字符串。我从来没有拉过原始的字符串- Flask有以抽象的方式访问它的机制。你应该使用它们,除非你有令人信服的理由不这样做。
发布于 2015-05-29 13:26:54
我们可以使用request.query_string来做到这一点。
示例:
让我们考虑一下view.py
from my_script import get_url_params
@app.route('/web_url/', methods=('get', 'post'))
def get_url_params_index():
return Response(get_url_params())
您还可以通过使用Flask Blueprints - https://flask.palletsprojects.com/en/1.1.x/blueprints/使其更加模块化
假设名字是作为查询字符串的一部分传递的/web_url/? first _ name =john
## here is my_script.py
## import required flask packages
from flask import request
def get_url_params():
## you might further need to format the URL params through escape.
firstName = request.args.get('first_name')
return firstName
正如你所看到的,这只是一个小例子-你可以获取多个值+格式化这些值并使用它,或者将它传递到模板文件中。
https://stackoverflow.com/questions/11774265
复制相似问题