我刚刚在GAE上构建了我的第一个Bottle.py应用。它的工作原理是,当我更改模板时,我必须重新启动开发服务器以查看更改。文档说,模板缓存应该在bottle.debug(True)时被禁用,并且你也可以调用bottle.TEMPLTE.clear(),但这些都不起作用。我也试过设置run(reloader = True),但这会导致错误。我究竟做错了什么? bottle.debug()是否适用于GAE上的任何其他人?
import bottle
bottle.debug(True)
bottle.TEMPLATES.clear()
@bottle.route('/')
def index(name='World'):
return bottle.template('main')
bottle.run(server='gae')
更新 我没有使用bottle.run(server ='gae'),而是自己包含了标准的main()函数,现在它可以工作了。
def main():
app = bottle.default_app()
util.run_wsgi_app(app)
if __name__ == "__main__":
main()
答案 0 :(得分:0)
Bottle / GAE doc介绍的标准方法是:
app = bottle.app()
然后调用dev_appserver.py
,它会读取app.yaml
并从您定义的脚本中导入您的应用,并处理GAE环境的所有其他内容。
您不应该直接运行.py。从瓶子方式运行将跳过dev_appserver中的那些句柄,包括模板缓存机制。当然,使用来自Google的util
确实可行,但根据uwsgi
或其他wsgi相关项目的文档,脚本模块中的app
变量应该是对象应该是提供上层处理。
答案 1 :(得分:0)
来自文档:
编译后,模板会缓存在内存中。在清除模板缓存之前,对模板文件所做的修改不会产生任何影响。调用bottle.TEMPLATES.clear()这样做。在调试模式下禁用缓存。
方法运行:
bottle.run( debug = True )
将启用debuggmode。
默认模板是稳定版本0.11.6 中的SimpleTemplate。
您可以为自己喜欢的模板引擎编写自己的适配器 使用其中一个预定义的适配器。目前有四个完全 支持的模板引擎:
的类,URL,装饰,渲染,功能强> 的
SimpleTemplate ,SimpleTemplate,引擎,视图(),模板()
MakoTemplate ,http://www.makotemplates.org,mako_view(),mako_template()
CheetahTemplate ,http://www.cheetahtemplate.org/,cheetah_view(),cheetah_template()
Jinja2Template ,http://jinja.pocoo.org/,jinja2_view(),jinja2_template()
<强>&GT;&GT;&GT;尝试使用其他模板引擎,而不是默认值。 &LT;&LT;&LT; 强>
要使用MakoTemplate作为默认模板引擎,只需导入它即可 专门的装饰和渲染功能:
from bottle import mako_view as view, mako_template as template
<强>&GT;&GT;&GT;检查视图路径中是否有重复文件&lt;&lt;&lt;&lt;
TEMPLATE_PATH = ['./', './views/']
<强>&GT;&GT;&GT;打印出模板字典&lt;&lt;&lt;
print bottle.TEMPLATES