我正在尝试学习一些Bottle的基础知识,并按照bottlepy.org页面上的教程进行操作.
首先,我要说:在Ubuntu上运行(我认为12.04?).我通过sudo easy_install瓶子安装了瓶子,该瓶子仅将其安装到了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)
在views / 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代码块包含在模板文本中(我不认为在开头使用%每条代码行都是合理的一种方法).
有什么想法或想法吗?谢谢
解决方法:
我认为您正在查看的是与您使用的瓶子版本(0.11.6)不同版本(0.13-dev)的Bottle文档.
瓶子的当前“稳定”版本为0.11.看起来<%...%> SimpleTemplate的功能在当前的“ dev”分支0.12和0.13-dev之间添加了一段时间.
这是相关的0.11 docs.
您可以通过以下几种方法解决此问题:
>您可以使用较新的未发行版本的Bottle.有风险.
>您可以使用0.11机制来嵌入Python代码%..%end.但这显然已被弃用,更不用说烦恼更长的代码块了.
>您可以使用更强大的模板语言;瓶子与几个很好地集成在一起.我选择了Jinja2,我推荐它.它几乎与Bottle的内置模板一样简单,但更加灵活.这是与Bottle Jinja2相似的其他人的正面experience.