tutorial framework español python pyramid

framework - python pyramid tutorial



Pirámide: la página 404 personalizada regresa como "200 OK" (4)

Tengo una vista 404 personalizada definida en mi aplicación Pyramid:

@view_config(context=HTTPNotFound, renderer=''404.pt'') def not_found(self, request): return {}

Funciona bien, excepto que el código de estado HTTP enviado con el contenido es 200 OK, lo cual no está bien de ninguna manera. Estoy teniendo el mismo problema con 403 Forbidden. ¿Cómo puedo hacer que Pyramid envíe el código de estado correcto?


Aquí es cómo puede usar directamente el enganche 404 y renderizar una plantilla mientras lo hace.

En tu init .py:

config.add_notfound_view(not_found)

En su view.py:

from pyramid.view import notfound_view_config from pyramid.renderers import render_to_response def not_found(request): request.response.status = 404 t = ''talk_python_to_me_com:templates/errors/404.pt'' return render_to_response(t, {}, request)

Hice esto para Talk Python To Me: http://www.talkpythontome.com/ , aquí hay una página no válida para ver una plantilla personalizada representada.

http://www.talkpythontome.com/there_is_no_cat


En realidad, en la pirámide 1.3 hay un nuevo decorador @notfound_view_config.

@notfound_view_config(renderer = ''404_error.jinja2'') def notfound(request): request.response.status = 404



La vista de excepción es una vista separada que proporciona un lugar para que haga lo que quiera. Al igual que cualquier vista que utiliza un renderizador, puede afectar el objeto de respuesta a través de request.response para modificar su comportamiento. El renderizador luego rellena el cuerpo.

@view_config(context=HTTPNotFound, renderer=''404.pt'') def not_found(self, request): request.response.status = 404 return {}