python - Pyramid - 动态分配模板以查看

标签 python pyramid

在 Pyramid 中,模板是静态分配给 View 的

@view_config(renderer='templates/foo.pt')
def my_view(request):
    return {'foo':1, 'bar':2}

但是,在某些情况下,我们希望为每个用户设置不同的模板。例如,user1 使用来自 templates/style1/xxx.pt 的模板,user2 使用来自 templates/style2/xxx.pt 的模板。因此,我们需要一种将模板动态传递给 View 的方法,而不是静态配置它们。

有没有办法优雅地完成任务?

最佳答案

我几天前刚做过这个。

这是一个 ajax 调用的示例代码。

@view_config(name="my_view", renderer="")
def my_view(request):

    renderer = choose_renderer()            #this is where you would dynamically choose what renderer you want. ex "templates/foo.pt"
    data = get_my_data_for_renderer

    return render_to_response(renderer, data, request)

这是一个普通路由调用的例子

    @view_config(route_name="my_view", renderer="")
def my_view(request):

    renderer = choose_renderer()            #this is where you would dynamically choose what renderer you want. ex "templates/foo.pt"
    data = get_my_data_for_renderer

    return render_to_response(renderer, data, request)

关于python - Pyramid - 动态分配模板以查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32136607/

相关文章:

python - 比较 Django 中的 url

python - 自定义 Pyramid 错误消息

python - 将 bcrypt 添加到 package.json 时,如何使用 docker node alpine Image 解决 "Could not find any Python installation to use"?

java - 从 Python 中使用 jar 运行 Java 程序

python - 在 Python 中获取标点符号的字符串常量

Pyramid + gunicorn_paster development.ini : Error waitress

javascript - 如何在 Pyramid 框架中制作代理机制?

python - 解码 Pyramid POST 数据(MultiDict 对象)

python /灰鲭鲨 : Script Tag not showing up from Sub Template when Loaded into Main Template via Ajax Call

python - 在 Tornado 下运行 Pyramid WSGI 应用程序