使django模板在出现错误时快速失败

django-pedant的Python项目详细描述


#django pedant

使django模板在各种错误上快速失败。

<;img src=“vote_pedant.jpg”alt=“此图像稍微偏离中心。”/>;
<;br>;<;sub>;来源:[flickr:karen_od](https://www.flickr.com/photos/karen_od/33199)<;sub>;

我们忘记了上下文中的模板变量,或者
在模板中访问的属性中有错误。django是一个经过战斗打造的web
框架,旨在**为该死的网页提供服务,不管是什么**,这让那些发现容易修复的bug数月来都无法修复的web开发人员非常懊恼。这是最糟糕的。简直就像是被刺伤了后背,然后流血不止,喃喃地说:“你,Django?”最后一次呼吸。*字面意思是.*这太糟糕了。


输入django pedant,这个迂腐的模板渲染器的朋友。


我想你的意思是“这个包裹是什么书呆子?”不过,说真的,django
至少在以下方面非常宽容:
-计算{%if expression%}表达式时引发的异常其他内置标记。
一般来说,允许传播自定义标记中的错误。{{context{variable}表达式中的
-`keyerror`和`attributeerror`在某些地方被捕获并替换为''''(todo)
-在计算{expr{filter}表达式时,`filterexpression.resolve`在某些情况下具有
`ignore\failures=true',吞咽“变量”不存在错误。< BR> > BR> >使用< BR> > BR/>装饰你的视图,它可能隐藏模板失败,简单地做:
``python
from pedant.decorators import fail_on_template_errors

@fail_on_template_errors
def my_view(request):
[…]
return render_to_string('foo.html')
````

如果在呈现Django所接受的模板时出现任何错误,视图现在将引发一个“pedanticTemplaterenderingerror”。

如果出现模板错误,则简单地记录下来,您可以使用“Log_on_Template嫒errors”装饰符:
``python
import logging


from pedant.decorators import log嫒on_Template嫒errors


@Log嫒on嫒Template errors(logger,log_level=logging.info)
定义我的视图(请求):
[…]
返回render_to_string('foo.html')
````
这将把模板错误记录到位于“info”的“myapp.views”记录器中。默认的日志级别
是“logging.error”。

模板('{foo}}').render(上下文({bar':'baz'}))
````
该测试将失败,因为模板中未定义“foo”。` pedantictestcase`继承自标准django'testcase'。“如果您不想”BR/>提供Django测试用例的事务性开销(例如单元测试),则提供“PooDestTestCasmixIn”。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓如何在java字符串中获取RATE的值   java ANT在哪里输出编译器错误?   在java中,while循环在何处启动对象   javacom。谷歌。格森。内部的LinkedTreeMap无法强制转换到我的类   java单选按钮。isSelected()方法未返回正确的响应   嵌入式系统中applet中的java相对码基字段   如何在eclipse中将Java应用程序附加到jvm探查器?   java为什么Android应用程序崩溃?   在java中拖放上传后保持文件夹结构   爪哇多领导人选举问题   java Springs RestTemplate如何处理postForEntity()中的错误响应   Java如何用前导零递增整数字符串?   java Android将文本作为图像共享给其他应用程序   Java搜索替换   java isDirectory()不适用于UNIX目录   java我们可以得到显示测试类是否通过或失败的TestNG报告吗   Java类对象排序和分组   简单Java幂递归   java在处理MethodArgumentNotValidException时如何访问请求对象?