【发布时间】:2014-09-27 01:12:40
【问题描述】:
我现在正在构建 1 个非常简单的 Web 应用程序,但对烧瓶和 jinja(以及整个 Web 开发实际上)非常陌生。
我有一个监视文件夹,它将永远通过 ftp 以脉冲方式将图像发送给它。此 wtch 文件夹中只会有一张图片。每 1 分钟,旧图片会被新图片替换,并带有新的时间戳。
我也想动态更新页面(并显示时间戳),而不必重新加载我稍后将添加的任何横幅或静态图像。我只想更新“Channels.Jinja”示例中的以下两行。
<br>{{screenshot_datetime}}<br/>
<img src={{screenshot_location}} width="100%"/>
Channels.Jinja
<!DOCTYPE HTML>
<html>
<head>
<title>Training</title>
</head>
<body bgcolor=white>
<div id=main>
<br>Date and Time of Screenshot <br/>
<br>{{screenshot_datetime}}<br/>
<img src={{screenshot_location}} width="100%"/>
</div>
<div id='test'>
<p>
<script>
var myVar=setInterval(function(){get_image()},1000);
function get_image() {
$.ajax({
type: 'GET',
cache: false,
url: 'get_data',
success: function({{data}}) {
$('img').attr('src', data);
}
});
}
</script>
</p>
</div>
</body>
</html>
Channels.py
def render_channel_route(cr):
static_folder = os.path.join('static',cr)
file_list = os.listdir(static_folder)
channel_files = [f for f in file_list if f.startswith(cr)]
if not channel_files :
logger.error('Could not find image file for Channel. File should start with {0}'.format(cr))
abort(404)
img = os.path.join(static_folder,file_list[0])
ts = get_time_from_filename(file_list[0],cr)
return render_template('Channels.jinja',screenshot_datetime=time.strftime('%c',ts),screenshot_location=img)
@app.route('/channel01-10')
def first_tab():
return render_channel_route('channel01-10')
@app.route('/get_data', methods=['GET'])
def get_data():
return render_template('Channels.jinja',
screenshot_datetime=time.strftime('%c',ts),screenshot_location=img)
我很茫然,我已经笨拙了一段时间了。欢迎任何和所有的建议!我在刷新时看到 304 响应,但即使是我尝试设置的计时器也没有工作。请原谅草率的代码,高度易变的代码经常被更改-_-
【问题讨论】:
标签: python ajax get flask jinja2