app - python flask before_first_request



Wie erhalten Sie eine Abfrage-Zeichenfolge auf Flask? (3)

Nicht offensichtlich aus der Flaschendokumentation zum Abrufen der Abfragezeichenfolge. Ich bin neu, schaute auf die Dokumente, konnte nicht finden!

Damit

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

Answer #1

Die vollständige URL ist als request.url verfügbar, und die request.query_string ist als request.query_string verfügbar.

Hier ist ein Beispiel:

from flask import request

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

    return request.query_string

Um auf einen einzelnen bekannten Parameter zuzugreifen, der in der Abfragezeichenfolge übergeben wurde, können Sie request.args.get('param') . Dies ist der "richtige" Weg, es zu tun, soweit ich weiß.

ETA: Bevor Sie weiter gehen, sollten Sie sich fragen, warum Sie die Abfragezeichenfolge möchten. Ich musste nie die rohe Saite einziehen - Flask hat Mechanismen, um abstrahiert auf sie zuzugreifen. Sie sollten diese verwenden, es sei denn, Sie haben einen zwingenden Grund, dies nicht zu tun.


Answer #2

Werkzeug / Flask hat schon alles für dich parsiert. Keine Notwendigkeit, die gleiche Arbeit wieder mit URL parse zu tun:

from flask import request

@app.route('/')
@app.route('/data')
def data():
    query_string = request.query_string  ## There is it
    return render_template("data.html")

Die vollständige Dokumentation für die Request- und Response-Objekte finden Sie in Werkzeug: http://werkzeug.pocoo.org/docs/wrappers/


Answer #3
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')




query-string