python django - ¿Cómo se obtiene una cadena de consulta en Flask?




ejemplos proyectos (5)

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')

No es obvio a partir de la documentación del matraz sobre cómo obtener la cadena de consulta. Soy nuevo, miré los documentos, no pude encontrar!

Asi que

@app.route('/')
@app.route('/data')
def data():
    query_string=??????
    return render_template("data.html")

La URL completa está disponible como request.url , y la cadena de consulta está disponible como request.query_string .

Aquí hay un ejemplo:

from flask import request

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

    return request.query_string

Para acceder a un parámetro conocido individual pasado en la cadena de consulta, puede usar request.args.get('param') . Esta es la forma "correcta" de hacerlo, que yo sepa.

ETA: antes de continuar, debe preguntarse por qué desea la cadena de consulta. Nunca tuve que tirar de la cadena en bruto: Flask tiene mecanismos para acceder a ella de forma abstracta. Debe usarlos a menos que tenga una razón convincente para no hacerlo.


Werkzeug / Flask ya lo analizó todo para ti. No es necesario volver a hacer el mismo trabajo con 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")

La documentación completa de los objetos de solicitud y respuesta se encuentra en Werkzeug: http://werkzeug.pocoo.org/docs/wrappers/


Podemos hacer esto usando request.query_string.

Ejemplo:

Consideremos 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())

También lo hace más modular utilizando Flask Blueprints - http://flask.pocoo.org/docs/0.10/blueprints/

Consideremos que el primer nombre se pasa como parte de la cadena de consulta / 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

Como ve, esto es solo un pequeño ejemplo: puede obtener múltiples valores + formateos y usarlos o pasarlos al archivo de plantilla.


A diferencia de isfile() , exists() devolverá True para los directorios.
Entonces, dependiendo de si solo quieres archivos simples o directorios, isfile() o exists() . Aquí hay una salida simple de REPL.

>>> print os.path.isfile("/etc/password.txt")
True
>>> print os.path.isfile("/etc")
False
>>> print os.path.isfile("/does/not/exist")
False
>>> print os.path.exists("/etc/password.txt")
True
>>> print os.path.exists("/etc")
True
>>> print os.path.exists("/does/not/exist")
False






python flask query-string