How do you get a query string on Flask?
关于如何获取查询字符串的烧瓶文档并不明显。 我是新人,看着文档,找不到!
完整URL以
这是一个例子:
要访问查询字符串中传递的单个已知参数,可以使用
ETA:在你走得更远之前,你应该问问自己为什么要查询字符串。我从来没有必要拉入原始字符串 - Flask具有以抽象方式访问它的机制。你应该使用那些,除非你有令人信服的理由不这样做。
2
3
4
5
@app.route('/data')
def data():
query_string=??????
return render_template("data.html")
2
3
4
5
6
@app.route('/data')
def data():
# here we want to get the value of user (i.e. ?user=some-value)
user = request.args.get('user')
2
3
4
5
6
@app.route('/adhoc_test/')
def adhoc_test():
return request.query_string
我们可以使用request.query_string来做到这一点。
例:
让我们考虑一下view.py
1 2 3 4 5 | 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使其更加模块化 - http://flask.pocoo.org/docs/0.10/blueprints/
让我们考虑将名字作为查询字符串的一部分传递
/的web_url /?如first_name =约翰
1 2 3 4 5 6 7 8 | ## 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 |
如您所见,这只是一个小例子 - 您可以获取多个值+合成它们并使用它或将其传递到模板文件中。
Werkzeug / Flask已经为您解析了一切。不需要再次使用urlparse做同样的工作:
1 2 3 4 5 6 7 | 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/
尝试这样查询字符串:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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 '''The Query String are...{}:{}:{}''' .format(args1,args2,args3) if __name__ == '__main__': app.run(debug=True) |
输出:
我来这里寻找查询字符串,而不是如何从查询字符串中获取值。
使用
1 2 3 4 5 6 7 8 9 10 | 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) |
输出:
参考文献:
这可以使用
例如,如果您的查询字符串有一个字段
1 | date = request.args.get('date') |
不要忘记将"
即
1 | from flask import request |