当前位置: 首页 > 面试题库 >

如何动态选择flask中要使用的模板目录?

康锦
2023-03-14
问题内容

默认情况下,flask使用存储在“ template”目录中的模板文件:

/flaskapp
    /application.py
    /templates
        /hello.html

有什么方法可以根据登录用户动态选择模板目录?这就是我想要的目录结构:

/flaskapp
    /application.py
    /templates (default template goes here)
        /hello.html
    /userdata
        /user1
            /template1
                 hello.html
            /template2
                 hello.html
        /user2
            /template1
                 hello.html
            /template2
                 hello.html

现在,如果我具有登录用户的用户名和用户激活的模板的名称,是否可以动态选择要加载模板文件的目录?例如,

/userdata/<username>/<activated template name>/

而不是固定的

/templates/

我要实现的目标是为我的Web应用程序提供一个类似wordpress的主题系统,用户可以在其中上传/选择其网站的主题。


问题答案:

也有可能覆盖Jinja加载程序并设置Jinja查找模板的路径。喜欢:

my_loader = jinja2.ChoiceLoader([
app.jinja_loader,
jinja2.FileSystemLoader([‘/flaskapp/userdata’,
‘/flaskapp/templates’]),
])
app.jinja_loader = my_loader
目录按照Jinja首先需要查找的顺序进行排列。然后,从视图中可以渲染用户特定的模板,如下所示:


render_template(‘%s/template1/hello.html’ % username)
您可以在视图中动态更改用户名的位置。当然,您也可以在那里选择要渲染的模板(1或2)。但是基本上,您真正想念的是带有自定义路径的自定义Jinja加载程序。



 类似资料:
  • 问题内容: 默认情况下,flask使用存储在“ template”目录中的模板文件: 有什么方法可以根据登录用户动态选择模板目录?这就是我想要的目录结构: 现在,如果我具有登录用户的用户名和用户激活的模板的名称,是否可以动态选择要加载模板文件的目录?例如, 而不是固定的 我要实现的目标是为我的Web应用程序提供一个类似wordpress的主题系统,用户可以在其中上传/选择其网站的主题。 问题答案:

  • 我想创建一个模板随机数生成器类,它可以是整数类型,也可以是浮点类型。为什么?对于赋值,我编写了一个累积函数(本质上与std::acculate相同),我想制作一个可以是任意整数或浮点类型的测试工具(例如,无符号| short | long | long long int、float、double)。我们一直在研究模板,我试图通过使用模板编程来做出动态编译时决策。我可能用了错误的方法来处理这个问题-

  • 问题内容: 我正在尝试使用FlaskForms将userID变量传递给WTForms。首先,我将显示可以正常工作的代码,然后显示需要修改的内容(该部分我不知道如何)。我要添加与某个组关联的新名称。 FlaskForm模型: 查看模型: 模板: 我在下拉列表中看到正确的列表,并且在提交时会给我正确的数字。 任务:我需要基于current_user.userID传递不同的列表。我正在使用SQLAlch

  • 我有下面同样的问题,但我想知道答案。Spring Boot:如何使用多个模式,并在运行时为每个请求动态选择使用哪一个模式 请帮助我找到答案 如何拥有一个数据库连接并为每个请求指定不同的模式? 提前谢谢你。

  • 问题内容: 我使用Flask并想更改资产文件夹目录。这是我的文件夹结构: 我想将静态文件夹下的所有文件夹移到该文件夹下。但是当我这样做时,我的css文件和其他文件无法加载页面。我应该为我的应用程序设置一个属性吗?我也尝试了以下方法: 但是无法做到这一点,还有其他方法吗? 更新: 当我在上方的行中删除前导斜杠时,出现了 带有追溯的错误: 问题答案: 初始化应用程序时,它应该是static_folde

  • 描述 (Description) 您还可以使用HTML到App方法创建动态选择器模式。 它使用两个参数 - pickerHTML - 它包含pickerHTML模态的字符串元素。 removeOnClose - 它包含布尔值,当您关闭Picker时,它将从DOM中删除。 默认情况下,它包含真值。 例子 (Example) 以下示例演示了在Framework7中使用动态选择器模式 - <!DOCTY