【问题标题】:Bottle Displays Old Template?瓶子显示旧模板?
【发布时间】:2014-01-21 09:53:20
【问题描述】:

我制作了一个名为batch.tpl 的模板的初稿。我已经更新了它,但是,旧模板仍然显示。我已关闭控制器脚本并多次将其重新打开。我已从模板中删除了所有内容,但以下内容除外:

cat views/batch.tpl

<HTML>
<HEAD>
        <TITLE> Batch Manager </TITLE>
</HEAD>

<BODY>
    THIS ISN'T DISPLAYING IN BROWSER
</BODY>
</HTML>

但不会显示,只是旧模板。

这是我的控制器:

cat brew_bottle.py

    from bottle import route, run, template, debug, post, request
import MySQLdb
import pymongo
from datetime import datetime, timedelta
import datetime


@route('/batch')
def batch():
    con = MySQLdb.connect('localhost', 'root', 'pi', 'brew')
    cursor = con.cursor()
    batch_sql = "SELECT name, material, start_date, active, end_begin_date, end_end_date, min_temp, max_temp FROM batch WHERE active='Y'"
    cursor.execute(batch_sql)
    batches = cursor.fetchall()
    return template('batch', batches=batches)
#...
debug(True)
run(host='0.0.0.0', port='8080', reloader=True)

但是,当我转到http://&lt;hostname&gt;:8080/batch 时,我看到了我写的旧模板:

我确定我错过了一些简单的东西。这是什么?

我创建了一个新目录并将所有内容移至其中。然后当我启动 python 脚本时,我能够看到正确的页面。但是老目录下的python脚本却显示老模板?

【问题讨论】:

  • 停止和启动瓶子服务器有帮助吗?我只是想知道这是否是reloader 问题。
  • @alecxe 不,停止和重新启动瓶服务器没有任何作用。

标签: python bottle


【解决方案1】:

根据Bottle docs,自动重新加载(reloading)仅由模块文件更改触发。

模板文件的更改不会触发重新加载。请使用调试 模式以停用模板缓存。

这样打开Bottle's debug mode

bottle.debug(True)

以下是调试模式下发生变化的不完整列表:

默认错误页面显示回溯。不缓存模板。 插件会立即应用。只要确保不使用调试 生产服务器上的模式。


注意,我看到有人已经问过你重启服务器是否会导致更新的模板出现,而你表示没有。这是高度可疑的。无论如何,请尝试解决上述问题,看看是否能解决您的问题。祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多