Comment puis-je transmettre le corps de la requête à mes vues?google app engine _method?
class RestHTTPMiddleware(object):
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
request = Request(environ)
environ['wsgi.input'] = StringIO.StringIO(request.body)
method = webapp.Request(environ).get('_method')
if method:
environ['REQUEST_METHOD'] = method.upper()
return self.app(environ, start_response)
quand je test:
def put(self):
logging.info("spot put %s", self.request.get("name"))
ce qui suit est enregistré: "spot mis" mais sans valeur.
Voici comment cela est mis en œuvre:
def main():
app = webapp.WSGIApplication([
(r'/spot/new/$', Spot),
],
debug=True)
# run_wsgi_app(application)
wsgiref.handlers.CGIHandler().run(RestHTTPMiddleware(app))
Pourquoi essayez-vous de faire cela? Pourquoi ne pas simplement accéder à self.request.body? –
Je veux pouvoir utiliser les méthodes put() et delete() dans webapp, un moyen de le faire est d'utiliser le dans les formulaires –
S'il s'agit d'une entrée [type = hidden], cela signifie que vous définissez sa valeur dans le code. Définissez la méthode appropriée comme '