使用template()渲染视图:
@get('/start/<page:int>')
def start(page=1):
return template('start', page=page)
使用view()装饰器的相同示例:
@get('/start/<page:int>')
@view('start')
def start(page=1):
return dict(page=page)
除个人偏好外,两者之间是否存在差异?
答案 0 :(得分:2)
好吧,我不是一个专业的开发人员,所以我可能会说一些与编码中最基本的好方法相悖的东西,但我觉得使用返回模板()更有用,因为我可以使用几个模板,而视图装饰器是不可能的。 E.G:
@get('/start/<page:int>')
def start(page=1):
return template('header',username=username)+template('start', page=page)+template('foot')
当然可以使用模板中的@views和%include子模板来完成此操作,也可能在其他一百万种方式中执行此操作,但是......这是一个区别!
...或者是否可以在一个@view中调用多个模板?
答案 1 :(得分:1)
我的理解是:不,除了偏好之外没有区别。 (与编写插件或使用路径装饰器完成许多相同任务的方式相同。)它们是实现相同目标的等效方法:渲染模板。
The Bottle template docs支持此:
要渲染模板,您可以使用template()函数或view()装饰器。
...
view()装饰器允许您返回带有模板变量的字典,而不是调用template()。