Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 45 lines (28 sloc) 1.791 kb
ca8e04d add french translation
nux authored
1 ---
2 layout: default
3 title: Accéder aux entrées utilisateurs par le biais de web.input
4 ---
5
6 # Accéder aux entrées utilisateurs par le biais de web.input
7
8 Autre langages: [english](/../input) | ...
9
10
11 ### Problème:
12
13 Comment obtenir les données utilisateur depuis un formulaire, ou un paramètre encodé dans l'URL.
14
15 ### Solution:
16
17 La méthode web.input() renvoi un objet web.storage (de type dictionnaire) qui contient les variables de l'url (dans GET) ou de l'en-tête HTTP (dans POST).
18 Par exemple, si vous allez sur la page http://example.com/test?id=10, vous voudrez extraire le id=10 en arrière plan. En utilisant web.input(), cela devient facile:
19
20 class SomePage:
21 def GET(self):
22 user_data = web.input()
23 return "<h1>" + user_data.id + "</h1>"
24
25 Parfois, vous aurez besoin de spécifier une variable par défaut, dans le cas ou aucune n'est donnée. Voici le même code avec une valeur par defaut:
26
27 class SomePage:
28 def GET(self):
29 user_data = web.input(id="no data")
30 return "<h1>" + user_data.id + "</h1>"
31
32
33 *Notez que les valeurs de web.input() sont des chaînes, même si ce sont des numéros qui lui sont passées*
34
35 Que faire si vous passez plusieurs noms de variable équivalents, comme ceci:
36
37 <select multiple size="3"><option>foo</option><option>bar</option><option>baz</option></select>
38
39
40 Vous aurez besoin de faire savoir à web.input qu'il doit s'attendre à des entrées multiples, sinon il les référencera tous, sauf un. Passez la valeur par défaut d'une liste à web.input et il fonctionnera correctement. Par exemple, http://example.com?id=10&id=20:
41
42 class SomePage:
43 def GET(self):
44 user_data = web.input(id=[])
45 return "<h1>" + ",".join(user_data.id) + "</h1>"
Something went wrong with that request. Please try again.