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

标签 python flask jinja2

默认情况下,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/

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

最佳答案

您可以向 Flask 构造函数传递一个“template_folder”参数。

就这样……

Flask(__name__, template_folder="wherever")

这是文档: http://flask.pocoo.org/docs/api/

关于python - 如何动态选择要在 flask 中使用的模板目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13598363/

相关文章:

python - 在 Raspberry PI 上用 Python 执行 FFmpeg 命令

python - Python子进程sudo返回错误:ERROR:['sudo: sorry, you must have a tty to run sudo\n']

python - 在 VS Code 中使用路径作为参数值设置自定义启动器(Flask - 证书路径)

在 uWSGI 下运行时,Flask Assets 包没有编译

python、flask 和 jinja2 : passing parameters to url_for

python - jinja2 模板中的列表

python - 使用 Python pandas 将列添加到特定 CSV 行

python - 为什么我没有看到 python 中调用析构函数

python - 生成器无法与 Python 中的字节连接

Ansible 角色不读取剧本目录或其他角色的模板目录中的模板