什么时候应该使用python flask条件与jinja2 html模板条件?

什么时候应该使用python flask条件与jinja2 html模板条件?,python,flask,jinja2,web-development-server,Python,Flask,Jinja2,Web Development Server,什么时候我会在模板中使用条件,而不仅仅是在后端函数中使用条件来调用包含模板的html文件?这是一个哲学问题,因此接近于“基于意见的”然而,我觉得这里有一篇关于业务逻辑与数据分离的好论文 模板应该包含数据。该数据可能不是静态的,此时您将使用模板条件。如果未经身份验证的用户正在访问您的页面,您的页面可能希望看起来有所不同,或者您的页面可能希望允许用户更改日期格式等 后端功能应该可以工作。这是业务逻辑,这里的条件应该反映这一点。查询用户会话以查看其区域设置并更改此处数据的格式是不合适的——这不是业务逻

什么时候我会在模板中使用条件,而不仅仅是在后端函数中使用条件来调用包含模板的html文件?

这是一个哲学问题,因此接近于“基于意见的”然而,我觉得这里有一篇关于业务逻辑与数据分离的好论文

模板应该包含数据。该数据可能不是静态的,此时您将使用模板条件。如果未经身份验证的用户正在访问您的页面,您的页面可能希望看起来有所不同,或者您的页面可能希望允许用户更改日期格式等


后端功能应该可以工作。这是业务逻辑,这里的条件应该反映这一点。查询用户会话以查看其区域设置并更改此处数据的格式是不合适的——这不是业务逻辑,而是UI逻辑。这里的条件应该会影响数据库查找、API调用或其他可能产生比“用户如何感知数据显示”更深远副作用的事情。

Hi Bob。我认为经验法则是“让模板只关注呈现数据”。模板中的条件应该主要关注呈现应用程序传入的数据。如果传递的列表为空,则在模板中使用条件显示“No items”消息,但避免触发进一步的数据库或外部API调用。