编程语言
首页 > 编程语言> > python瓶模板未格式化

python瓶模板未格式化

作者:互联网

我正在尝试学习一些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.

标签:bottle,templates,syntax-error,python
来源: https://codeday.me/bug/20191030/1964175.html