2014-01-21 107 views
3

我在学习一些瓶子基础知识,并遵循bottlepy.org页面上的教程。首先我会说:在Ubuntu上运行(12.04我认为?)。我通过sudo easy_install bottle安装了瓶子,它只将它安装到我的python2.7 dist-packages中。我读过bottle.py是有意无依赖的,并且将bottle.py复制到可用的目录中以使其在python3中工作(我试图使用python3.2)是合理的。蟒蛇瓶子模板不格式化

MWE:

在helloworld.wsgi我:

#!/usr/bin/python3 
from bottle import debug, route, run, template, view 

@route("/hello") 
@route("/hello/<name>") 
@view("base") 
def hello(name=None): 
    return dict(name=name) 

debug(True) 
run(host="localhost", port=8080) 

并在意见/ base.tpl我:

<% 
    if name is not None: 
     name = name.title().strip() 
    else: 
     name = "World" 
%> 
<p>Hello {{name}}!</p> 

但是当我尝试浏览到一个网站(localhost:8080/hello或localhost:8080/hello/dude)我得到一个错误:

SyntaxError: invalid syntax 

指的是关闭'%>'(第6行)的'>'。

我不知道为什么我得到这个错误 - 我几乎复制了网站的例子逐字,并不知道如何将Python代码块放在模板文本(我不认为使用每个代码行开头的%是合理的做法)。

任何想法或想法?由于

回答

4

我想你看的文档,从您使用的一个(0.11.6)瓶的不同版本(0.13-dev的)。

瓶子的当前“稳定”版本是0.11。看起来SimpleTemplate<% ... %>功能在0.12和0.13-dev之间增加了一段时间,这是当前的“dev”分支。

以下是相关的0.11 docs


您可以解决这几个方面:

  1. 你可以移动到瓶的一个新的,未发行版本。有风险。

  2. 您可以使用0.11机制嵌入Python代码% .. %end。但是这显然已被弃用,更不用说烦人更长的代码块了。

  3. 您可以使用更强大的模板语言;瓶与几个很好地集成。我选择Jinja2,我推荐它。它几乎和Bottle的内置模板一样简单,但更灵活。这是其他人与Bottle + Jinja2同样积极的experience

+0

啊,就是这样 - 我想Jinja2,我忘了它是一个单独的模块。现在我已经清楚了,谢谢! – dwanderson