在 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/