J'essaie de créer un Api REST dans Django en produisant du Json. J'ai des problèmes si je fais une requête POST en utilisant curl dans le terminal. L'erreur que j'obtiens est
Vous avez appelé cette URL via POST, mais l'URL ne se termine pas par une barre oblique et vous avez défini APPEND_SLASH. Django ne peut pas rediriger vers l'URL avec barre oblique avec barre oblique tout en conservant les données POST. Modifiez votre formulaire pour qu'il pointe vers 127.0.0.1:8000/add/ (notez la barre oblique de fin), ou définissez APPEND_SLASH=False dans vos paramètres Django.
Mon url.py est
from django.conf.urls.defaults import patterns, include, url
import search
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
urlpatterns = patterns('',
url(r'^query/$', 'search.views.query'),
url(r'^add/$','search.views.add'),
)
et mes opinions sont
# Create your views here.
from django.http import HttpResponse
from django.template import Context,loader
import memcache
import json
def query(request):
data=['a','b']
mc=memcache.Client(['127.0.0.1:11221'],debug=0)
mc.set("d",data);
val=mc.get("d")
return HttpResponse("MEMCACHE: %s<br/>ORIGINAL: %s" % (json.dumps(val),json.dumps(data)) )
def add(request):
#s=""
#for data in request.POST:
# s="%s,%s" % (s,data)
s=request.POST['b']
return HttpResponse("%s" % s)
Je sais que cela ne donne pas Json mais j'ai le problème mentionné ci-dessus lorsque je fais une requête POST dans le terminal.
curl http://127.0.0.1:8000/add/ -d b=2 >> output.html
Je suis cependant novice en matière de django.