Estoy tratando de hacer un REST Api en Django dando salida a Json. Tengo problemas si hago una solicitud POST usando curl en la terminal. El error que consigo esDjango POST URL error
Se llama este URL a través de la POST, pero la URL no finalizar con una barra y tiene SET APPEND_SLASH. Django no puede redireccionar a la URL de barra mientras mantiene los datos POST. Cambie su formulario para que apunte a 127.0.0.1:8000/add/ (observe la barra al final), o configure APPEND_SLASH = False en la configuración de Django.
Mi url.py es
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'),
)
y mis puntos de vista son
# 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)
Sé que no es dar JSON pero estoy teniendo el problema antes mencionado cuando hago la solicitud POST en terminal
curl http://127.0.0.1:8000/add/ -d b=2 >> output.html
Soy nuevo en django though.
Gracias a mucho. El @csrf_exempt funcionó – Zabi