2014-07-22 16 views
148

W Flask, Jak wyodrębnić parametry z adresu URL? Jak wyodrębnić parametry nazwane z adresu URL za pomocą kolby i pythona?Python Flask jak uzyskać parametry z adresu URL?

Gdy użytkownik uzyskuje dostęp do tego URL działa na moim kolby aplikacji, chcę serwis internetowy, aby móc obsłużyć parametrów podanych po znaku zapytania:

http://10.1.1.1:5000/login?username=alex&password=pw1 

#I just want to be able to manipulate the parameters 
@app.route('/login', methods=['GET', 'POST']) 
def login(): 
    username = request.form['username'] 
    print(username) 
    password = request.form['password'] 
    print(password) 
+15

Wystarczy mała wskazówka dla bezpieczeństwa: Nie zawierają haseł w żądań GET. https://security.stackexchange.com/questions/147188/is-it-bad-practice-to-use-get-method-as-login-username-password-for-administrato – palsch

Odpowiedz

250

użytkowania request.args aby analizowany zawartość ciąg kwerendy :

from flask import request 

@app.route(...) 
def login(): 
    username = request.args.get('username') 
    password = request.args.get('password') 
16

parametry URL są dostępne w request.args, który jest MultiDict że ma metodę get, z opcjonalnymi parametrami wartości domyślnej (default) i typ (type) - który można wywołać, przekształcając wartość wejściową na żądany format.

from flask import request 

@app.route('/my-route') 
def my_route(): 
    page = request.args.get('page', default = 1, type = int) 
    filter = request.args.get('filter', default = '*', type = str) 

Przykłady z kodem powyżej:

/my-route?page=34    -> page: 34 filter: '*' 
/my-route      -> page: 1 filter: '*' 
/my-route?page=10&filter=test -> page: 10 filter: 'test' 
/my-route?page=10&filter=10  -> page: 10 filter: '10' 
/my-route?page=*&filter=*  -> page: 1 filter: '*' 
Powiązane problemy