Nie jest oczywiste z dokumentacji kolby, jak uzyskać ciąg zapytania. Jestem nowy, spojrzał na dokumenty, nie mógł znaleźć!
Więc
@app.route('/')
@app.route('/data')
def data():
query_string=??????
return render_template("data.html")
python
flask
query-string
Tampa
źródło
źródło
Odpowiedzi:
źródło
Pełny adres URL jest dostępny jako
request.url
, a ciąg zapytania jest dostępny jakorequest.query_string
.Oto przykład:
Aby uzyskać dostęp do pojedynczego znanego parametru przekazanego w ciągu zapytania, możesz użyć
request.args.get('param')
. O ile mi wiadomo, jest to „właściwy” sposób na zrobienie tego.ETA: Zanim przejdziesz dalej, powinieneś zadać sobie pytanie, dlaczego chcesz ciąg zapytania. Nigdy nie musiałem wciągać surowego sznurka - Flask ma mechanizmy dostępu do niego w abstrakcyjny sposób. Powinieneś ich używać, chyba że masz ważny powód, aby tego nie robić.
źródło
Werkzeug / Flask as już wszystko przeanalizował. Nie musisz ponownie wykonywać tej samej pracy z urlparse:
Pełna dokumentacja dla obiektów żądania i odpowiedzi znajduje się w Werkzeug: http://werkzeug.pocoo.org/docs/wrappers/
źródło
Możemy to zrobić za pomocą request.query_string.
Przykład:
Rozważmy view.py
Możesz także uczynić go bardziej modułowym, korzystając z Flask Blueprints - http://flask.pocoo.org/docs/0.10/blueprints/
Rozważmy, że imię jest przekazywane jako część ciągu zapytania / web_url /? First_name = john
Jak widzisz, to tylko mały przykład - możesz pobrać wiele wartości, sformatować je i użyć lub przekazać do pliku szablonu.
źródło
Przybyłem tutaj, szukając ciągu zapytania, a nie jak uzyskać wartości z ciągu zapytania.
request.query_string
zwraca parametry URL jako nieprzetworzony ciąg bajtów (Ref 1).Przykład użycia
request.query_string
:Wynik:
Bibliografia:
źródło
Spróbuj tak dla ciągu zapytania:
Wynik:
źródło
Każda forma ciągu zapytania możliwa do odzyskania z obiektu żądania kolby, jak opisano w O'Reilly Flask Web Devleopment :
Z O'Reilly Flask Web Development i jak stwierdził wcześniej Manan Gouhari, najpierw musisz zaimportować żądanie:
request
jest obiektem ujawnionym przez Flask jako zmienna kontekstowa o nazwie (zgadłeś)request
. Jak sama nazwa wskazuje, zawiera wszystkie informacje, które klient zawarł w żądaniu HTTP. Ten obiekt ma wiele atrybutów i metod, które można odpowiednio pobrać i wywołać.Masz sporo
request
atrybutów, które zawierają ciąg zapytania do wyboru. Tutaj wymienię każdy atrybut, który w jakikolwiek sposób zawiera ciąg zapytania, a także opis z książki O'Reilly tego atrybutu.Najpierw
args
jest „słownik ze wszystkimi argumentami przekazanymi w ciągu zapytania adresu URL”. Więc jeśli chcesz, aby ciąg zapytania został przeanalizowany w słowniku, zrobiłbyś coś takiego:(Jak zauważyli inni, możesz również użyć,
.get('<arg_name>')
aby uzyskać określoną wartość ze słownika)Następnie istnieje
form
atrybut, który nie zawiera ciągu zapytania, ale który jest zawarty w części innego atrybutu, który zawiera ciąg zapytania, który wymienię na chwilę. Najpierwform
jest jednak „Słownik ze wszystkimi polami formularza przesłanymi wraz z żądaniem”. Mówię to tak: istnieje inny atrybut słownika dostępny w obiekcie żądania kolby o nazwievalues
.values
to „Słownik, który łączy wartości wform
iargs
”. Pobieranie, które wyglądałoby mniej więcej tak:(Ponownie, użyj,
.get('<arg_name>')
aby pobrać konkretny element ze słownika)Inną opcją jest
query_string
„Część ciągu zapytania w adresie URL jako nieprzetworzona wartość binarna”. Przykład tego:Następnie, jako dodatkowy bonus, istnieje
full_path
„Ścieżka i części ciągu zapytania w adresie URL”. Por ejemplo:I wreszcie:
url
„Pełny adres URL żądany przez klienta” (który zawiera ciąg zapytania):Miłego hakowania :)
źródło
Można to zrobić za pomocą
request.args.get()
. Na przykład, jeśli ciąg zapytania ma poledate
, można uzyskać do niego dostęp za pomocąNie zapomnij dodać „
request
” do listy importów z kolby, tjźródło
request.args.get()
; nowe odpowiedzi na stare pytania powinny zawierać coś, o czym wcześniej nie wspomniano.Jeśli żądanie GET i przekażemy niektóre parametry zapytania,
źródło