Как вы получаете строку запроса на Flask?
не очевидно из документа колбы о том, как получить строку запроса. Я новичок, посмотрел на документы, не смог найти!
Так
@app.route('/')
@app.route('/data')
def data():
query_string=??????
return render_template("data.html")
4 ответа:
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')
полный 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: прежде чем идти дальше, вы должны спросить себя, почему вы хотите строку запроса. Мне никогда не приходилось вытаскивать сырую строку-у колбы есть механизмы для доступа к ней в абстрактном виде путь. Вы должны использовать их, если у вас нет веской причины не делать этого.
мы можем сделать это с помощью запроса.строка запроса.
пример:
давайте рассмотрим 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/?имя=Джон
## 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:
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/