关于如何获取查询字符串的烧瓶文档不明显。我是新手,看着文档,找不到!如何在Flask上获取查询字符串?
所以
@app.route('/')
@app.route('/data')
def data():
query_string=??????
return render_template("data.html")
关于如何获取查询字符串的烧瓶文档不明显。我是新手,看着文档,找不到!如何在Flask上获取查询字符串?
所以
@app.route('/')
@app.route('/data')
def data():
query_string=??????
return render_template("data.html")
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')
此示例返回在查询字符串中传递的“user”参数的值,而不是查询字符串本身。 “查询字符串”表示问号之后和井号之前的所有内容(如果存在的话)。 – 2012-08-02 16:32:03
仍然是一个有用的答案,因为它与问题有关。如此有效且+1 – Necronet 2013-01-19 19:52:02
如果用户不在场,这会引发异常吗? (如果参数只是一个字典,我猜不是。) – 2016-10-23 07:35:48
的完整URL可作为request.url
,查询字符串可作为request.query_string
。
下面是一个例子:
from flask import request
@app.route('/adhoc_test/')
def adhoc_test():
return request.query_string
要访问查询字符串中传递的个体称为参数,可以使用request.args.get('param')
。就我所知,这是做到这一点的“正确”方式。
ETA:在你走得更远之前,你应该问自己为什么要查询字符串。我从来不需要拉入原始字符串 - Flask具有以抽象方式访问它的机制。你应该使用这些,除非你有一个令人信服的理由不要。
Werkzeug/Flask已经为你解析了一切。无需与再里urlparse做同样的工作:
from flask import request
@app.route('/')
@app.route('/data')
def data():
query_string = request.query_string ## There is it
return render_template("data.html")
的请求和响应对象的完整文档是在WERKZEUG:http://werkzeug.pocoo.org/docs/wrappers/
我们可以通过使用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())
您还可以通过使用瓶蓝图变得更加模块化 - http://flask.pocoo.org/docs/0.10/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
正如你所看到的,这只是一个小例子 - 你可以获取多个值并将它们合成并使用它或将它传递给模板文件。
它位于quickstart下的文档中:http://flask.pocoo.org/docs/quickstart/#the-request-object – Jarus 2012-08-02 09:26:36