像在aiohttp中那样抛出web异常
django-web-exceptions的Python项目详细描述
像在aiohttp中那样抛出web异常
什么和为什么?
在AioHTTP中,可以作为异常引发任何响应(这非常酷)。 但django只能引发3+1 web异常。
- 400SuspiciousOperation
- 403PermissionDenied
- 404Http404
- 500任何其他未捕获的异常
此包允许您作为异常引发任何http响应。
文档
快速启动
安装django web异常:
pip install django-web-exceptions
将其添加到中间件中
# settings.pyMIDDLEWARE=(# ...'web_exceptions.middleware.WebExceptionsMiddleware',# ...)
功能
导入异常并在任何地方引发
# views.pyfromweb_exceptionsimportexceptions# ...defindex(request):""" Simple view raise redirectexception """raiseexceptions.HTTPMovedPermanently('/foo')
还可以将任何类型的异常状态代码自定义为自定义处理程序, 在urls.py中定义,类似于django error handlers。
# urls.pyfrommyappimportviewshandler300=<callableview>handler400=<callableview>handler<status_code>=<callableview>
有关更多示例,请参见example proj
运行测试
代码真的有用吗?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install tox (myenv) $ tox