gpt4 book ai didi

python - 我在 Flask 中有部分 View /代码隐藏吗?

转载 作者:行者123 更新时间:2023-11-28 17:49:51 25 4
gpt4 key购买 nike

我正在从 C#.NET 迁移到 Python/Flask。

在 .NET 中,我有 MasterPage、UserControl、PartialView,每个都有自己的代码。

例如我可以将检查登录函数保存在 Login.ascx.cs 中,并在任何我想要的地方呈现 Login.ascx。如果已登录,则显示欢迎消息,否则显示登录表单。

但是在 Flask 中我只找到了包含静态 html 文件的 {% include 'login.html' %}

我如何在 Flask 中实现这个设计?

我现在可能有答案了:

我没有使用 g.user,这就是我来这里寻求帮助的原因。其他人建议使用 @app.context_processor。我正在尝试,这似乎是我想要的。与g类似的全局可访问设计。

最佳答案

尽管它的名字可能会让您认为它确实如此 include不插入静态 HTML 文件的内容。它实际上插入了 呈现 Jinja 模板的内容,它的功能非常类似于 MVC 的部分 View (如果我理解正确的话)。它has access to the parent template context默认情况下。因此,例如,如果您将用户存储在 g.user 上,因为默认情况下可以访问 g,您可以简单地执行以下操作:

<-- login.html -->
{% if g.user.is_anonymous() %}
Login form goes here
{% else %}
Greetings {{g.user.full_name}}!
{% endif %}

并且 {% include "login.html"%} 您希望登录表单/用户问候显示的任何地方。

对编辑的回应

如果你想确保所有模板都可以访问user,你确实可以使用context_processor添加一个用户:

@app.context_processor
def add_user():
# Get user
return {"user": user}

关于python - 我在 Flask 中有部分 View /代码隐藏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12152424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com