Comment obtenir des données de publication de la demande?
Je viens de mettre en place un serveur apache avec django, et de la tester, fait une fonction très simple dans views.py
channel = rabbit_connection()
@csrf_protect
@csrf_exempt
def index(request):
data={'text': 'Food truck is awesome! ', 'email': '[email protected]', 'name': 'Bob'}
callback(json.dumps(data))
context = RequestContext(request)
return render_to_response('index.html', context_instance=context)
Cette fonction fonctionne très bien si j'envoie un GET
ou POST
demande au serveur. Cependant, j'aimerais obtenir ces données à partir POST
demande. En supposant que j'ai envoyer la demande comme ceci:
import pycurl
import simplejson as json
data = json.dumps({'name':'Bob', 'email':'[email protected]', 'text': u"Food truck is awesome!"})
c = pycurl.Curl()
c.setopt(c.URL, 'http://ec2-54-......compute-1.amazonaws.com/index.html')
c.setopt(c.POSTFIELDS, data)
c.setopt(c.VERBOSE, True)
for i in range(100):
c.perform()
Ce que j'aimerais avoir le point de vue est quelque chose comme ceci:
if request.method == 'POST':
data = ?????? # Something that will return me my dictionary
Juste au cas où:
Il est toujours va être au format JSON et les champs sont inconnus.
Vous devez vous connecter pour publier un commentaire.
data= request.POST.get('data','')
Vous renvoie une valeur unique (clé=
data
) de votre dictionnaire. Si vous voulez l'intégralité du dictionnaire, il vous suffit d'utiliserrequest.POST
. Vous êtes à l'aide de la QueryDict classe ici:-Django Docs
name = request.POST.get('name','')
sera de retour lename
variable "Bob"Si les données affichées est au format JSON, vous avez besoin de désérialiser: