用于未处理ajax错误的django中间件
django-ajaxerrors的Python项目详细描述
简单的django中间件,通过在不同的浏览器窗口中自动打开django的失败ajax请求,可以轻松查看django的技术错误页面。
问题
我认为大多数django开发人员都知道django有用的调试模式未处理错误页面。但是,当ajax请求到达错误视图时,错误页将不会在浏览器中呈现,而是由ajax错误处理程序接收(假设您甚至有一个错误处理程序),这几乎总是不是您想要的。这迫使你找到其他方法来获取你的回溯信息。例如,在编写这个包之前,我经常打开chrome的开发工具,在“资源”选项卡中找到失败的资源,然后阅读原始html(讨厌)或将其复制粘贴到文件中并双击它(乏味)。
建议的解决方案
由于问题实际上是关于开发的容易性,而且由于我(我怀疑还有许多其他django开发人员)在本地完成了大部分开发工作,我认为该解决方案可以利用服务器是一个具有现代浏览器和gui的成熟桌面的优势。输入ajaxerrors.middleware.ShowAJAXErrors。这个小的中间件拦截所有未处理的视图异常,pickle技术错误页面,并使用python的webbrowser模块在一个特殊的url上引导一个新的浏览器选项卡,该url将服务(和删除)先前存储的页面。
只有当DEBUG为true且request.is_ajax()为true时,才会触发所有这些操作,因此您在开发流中使用的几乎所有内容都应该保持不变。太好了。
安装说明
- 像任何其他python包一样使用easy_install或pip安装,或者只使用:
- python setup.py安装
- 将ajaxerrors.middleware.ShowAJAXErrors添加到中间件类设置中。
您还可以在包的readme文件中找到更多信息。
贡献
django ajaxerrors是在mit许可下授权的,如果您真的对阅读所有这些小写字母感兴趣,请参阅本发行版中的LICENSE文件。
我真的很想有一天在django中看到这个特性,但是首先我们应该看看其他人是否感兴趣,也许可以在这个非常简单的实用程序中添加更多内容。不管怎样,请随意拿叉子给我发拉货请求。我会尽我最大的努力修复任何漏洞,只要…嗯,至少直到我失去兴趣。
如果你想讨论一些关于django ajaxerrors的事情,或者如果你对我有其他的好奇,请在yaniv的aknin dot name找到我,访问django ajaxerrors'GitHub page或者我的smashingPython-centric tech blog。