Jak uzyskać ciąg zapytania na kolbie?

Nie jest oczywiste z dokumentacji kolby, jak uzyskać ciąg zapytania. Jestem nowy, spojrzał na dokumenty, nie można znaleźć!

Więc

@app.route('/')
@app.route('/data')
def data():
    query_string=??????
    return render_template("data.html")
Author: ivanleoncz, 2012-08-02

4 answers

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')
 499
Author: Kracekumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-03 02:09:23

Pełny Adres URL jest dostępny jako request.url, A ciąg zapytania jako request.query_string.

Oto przykład:

from flask import request

@app.route('/adhoc_test/')
def adhoc_test():

    return request.query_string

Aby uzyskać dostęp do pojedynczej znanej param przekazanej w ciągu zapytania, możesz użyć request.args.get('param'). To jest "właściwy" sposób, aby to zrobić, o ile wiem.

ETA: zanim przejdziesz dalej, powinieneś zadać sobie pytanie, dlaczego chcesz ciąg zapytania. Nigdy nie musiałem ciągnąć surowego Sznurka-kolba ma mechanizmy dostępu do niego w abstrakcyjny sposób. Powinieneś ich używać, chyba że mam przekonujący powód, żeby tego nie robić.

 169
Author: Lyndsy Simon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-17 19:02:18

Możemy to zrobić za pomocą request.query_string.

Przykład:

Rozważmy 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())

Możesz również uczynić go bardziej modułowym, używając schematów kolby - http://flask.pocoo.org/docs/0.10/blueprints/

Rozważmy, że imię jest przekazywane jako część łańcucha zapytania / 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

Jak widzisz jest to tylko mały przykład - możesz pobrać wiele wartości + sformatować je i użyć lub przekazać je do szablonu plik.

 13
Author: Pralhad Narsinh Sonar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-29 05:26:53

Werkzeug / Flask as już parsed wszystko dla Ciebie. Nie ma potrzeby wykonywania tej samej pracy ponownie z 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")

Pełna dokumentacja dla obiektów request I response znajduje się w Werkzeug: http://werkzeug.pocoo.org/docs/wrappers/

 12
Author: Simon Sapin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-03 09:08:44