2014-07-22 67 views
148

Flask'ta, URL'den nasıl parametreleri ayırım? Şişeyi ve python'u kullanarak adlandırılmış parametreleri bir URL'den nasıl alabilirim? Sorgu dize içeriğini çözümlenen almak içinPython Flask URL'den parametreler nasıl alınır?

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

Sadece küçük ipucu: GET istekleri şifreleri dahil etmeyin. https://security.stackexchange.com/questions/147188/is-it-bad-practice-to-use-get-method-as-login-username-password-for-administrato – palsch

cevap

250

Kullanım request.args: Kullanıcı my şişe app üzerinde çalışan bu URL'yi eriştiğinde

, ben web hizmeti soru işaretinden sonra belirtilen parametreleri idare edebilmek istiyorum :

from flask import request 

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

URL parametreleri(varsayılan değer (default) ve türü için isteğe bağlı parametreler ile, bir get yöntem olan bir MultiDict olan request.args mevcuttur) - Girdi değerini istenen formata dönüştüren bir çağrılabilirdir. Yukarıdaki kod ile

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) 

Örnekler: güvenlik için

/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: '*' 
İlgili konular