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

When should you use python flask conditionals vs jinja2 html template conditionals?

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

这在某种程度上是一个哲学问题,因此与 "Opinion-based," 接壤,但我觉得这里有一篇关于业务逻辑与数据分离的好论文。

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

后端函数应该工作。这是业务逻辑,这里的条件应该反映这一点。查询用户的会话以查看他们的语言环境并更改此处数据格式的方式是不合适的——这不是业务逻辑,而是 UI 逻辑。这里的条件应该影响数据库查找,或 API 调用,或其他可能比 "How the user perceives the data being presented."

有 farther-reaching 副作用的东西