Je ne veux pas utiliser le fichier html
, mais seulement avec django je dois faire une requête POST.Comment envoyer une requête POST en utilisant django?
Tout comme urllib2
envoie une demande get
.
Je ne veux pas utiliser le fichier html
, mais seulement avec django je dois faire une requête POST.Comment envoyer une requête POST en utilisant django?
Tout comme urllib2
envoie une demande get
.
Une combinaison de méthodes d'urllib2 et d'urllib fera l'affaire. Voici comment je posterai des données en utilisant les deux:
post_data = [('name','Gladys'),] # a sequence of two element tuples
result = urllib2.urlopen('http://example.com', urllib.urlencode(post_data))
content = result.read()
urlopen() est une méthode que vous utilisez pour ouvrir urls. urlencode() convertit les arguments en chaîne codée en pourcentage.
Vous pouvez utiliser urllib2
dans django. Après tout, c'est toujours python. Pour envoyer un POST
avec urllib2
, vous pouvez envoyer le paramètre data
(extrait de here):
urllib2.urlopen (url [données] [, timeout])
[..] la requête HTTP sera un POST au lieu d'un GET lorsque le paramètre data est fourni
La seule chose que vous devriez regarder maintenant:
Voici comment vous écririez l'exemple de la réponse acceptée à l'aide python-requests
:
post_data = {'name': 'Gladys'}
response = requests.post('http://example.com', data=post_data)
content = response.content
beaucoup plus intuitive. Voir le Quickstart pour des exemples plus simples.
Cela facilite vraiment les demandes. Hautement recommandé. – Seth