使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”。
使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”。