性能,包括Django中循环的内部模板
遵循Don't Repeat Yourself原则(DRY),我重构了我正在使用的Django模板 我在for循环中包含模板,每个包含的模板都可以包含零个或多个模板 我不知道这是否会导致性能问题,或者Django会自动缓存模板,并且一旦使用性能,包括Django中循环的内部模板,django,performance,django-templates,Django,Performance,Django Templates,遵循Don't Repeat Yourself原则(DRY),我重构了我正在使用的Django模板 我在for循环中包含模板,每个包含的模板都可以包含零个或多个模板 我不知道这是否会导致性能问题,或者Django会自动缓存模板,并且一旦使用{%include%}包含了一个模板,那么它就不需要每次包含相同的模板(文件)时都访问HDD 当您在Python上重新导入某些内容时,它实际上不会再次重新导入,而是在已经导入的模块中查找。因此,我想知道Django是否使用了类似的方法。Django有一个可选方
{%include%}
包含了一个模板,那么它就不需要每次包含相同的模板(文件)时都访问HDD
当您在Python上重新导入某些内容时,它实际上不会再次重新导入,而是在已经导入的模块中查找。因此,我想知道Django是否使用了类似的方法。Django有一个可选方法可能会有所帮助
不过,你应该对你的应用程序进行分析,以检查模板加载是否真的是一个瓶颈(与db访问等的开销相比,我对此表示怀疑)。我的建议只是。。。如果需要性能,请使用Jinja2而不是Django作为模板解析器。尽管Django模板解析器在过去几年中有了显著的改进,但与Jinja2相比仍然相当缓慢。有了Jinja2,您可以使用宏,使这些类型的模式变得非常简单和可重用。它们就像模板中的Python函数,可以导入。我会记住这一点。我喜欢Jinja2,因为您可以将参数传递给Django中模板中的方法,但您不能:(与数据库访问相比,模板通常加载速度很快。如果要用数据库中的信息填充模板,请先担心数据库!这似乎正是我所想的。但是,我正在使用多个第三方应用程序,我不知道它们是否是线程安全的,如文档中所要求的那样:有没有办法知道模板渲染的实际成本吗?