Javascript 自动重新加载Flask服务器中的FTP内容
我使用flask服务器从FTP服务器中提取数据并提供服务(视频)。 摄像机在向远程FTP服务器发送新视频时向flask服务器显示“OK”。Flask服务器从FTP中提取新视频。 我需要的是,当flask运行get_video函数时,还要刷新html的内容,以便用户可以看到新的视频 请注意,摄像头和用户是不同的客户端,它们都连接到同一个Flask服务器Javascript 自动重新加载Flask服务器中的FTP内容,javascript,python,html,flask,ftp,Javascript,Python,Html,Flask,Ftp,我使用flask服务器从FTP服务器中提取数据并提供服务(视频)。 摄像机在向远程FTP服务器发送新视频时向flask服务器显示“OK”。Flask服务器从FTP中提取新视频。 我需要的是,当flask运行get_video函数时,还要刷新html的内容,以便用户可以看到新的视频 请注意,摄像头和用户是不同的客户端,它们都连接到同一个Flask服务器 from flask import Flask, Response, request, render_template, g, redirect
from flask import Flask, Response, request, render_template, g, redirect
import ftplib
app = Flask(__name__)
def get_video():
session = ftplib.FTP("****", "*****", "****")
session.retrbinary("RETR try.mp4", open("static/sc.mp4", "wb+").write)
@app.route('/')
def hello():
get_video()
return '''
<!doctype html>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<title>Files</title>
<h1>VIDEO</h1>
<video width="320" height="240" id="VideoWindow" controls>
<source src="static/sc.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</form>
<form action="/shoot_request">
<input type="submit" name="shoot" value="GetNew"/>
</form>
<script type='text/javascript'>
$(document).ready(function () {
setInterval(function () {
$('#VideoWindow').load(window.location.href + '#VideoWindow');
}, 5000);
});
</script>
'''
@app.after_request # This did not work
def add_header(response):
response.cache_control.max_age = 10
return response
从烧瓶导入烧瓶,响应,请求,呈现模板,g,重定向
进口ftplib
app=烧瓶(名称)
def get_video():
session=ftplib.FTP(“****”、“****”、“****”)
session.retrbinary(“RETR try.mp4”,open(“static/sc.mp4”,“wb+”)。write)
@应用程序路径(“/”)
def hello():
获取视频()
返回“”'
文件夹
视频
您的浏览器不支持视频标记。
$(文档).ready(函数(){
setInterval(函数(){
$('#VideoWindow').load(window.location.href+'#VideoWindow');
}, 5000);
});
'''
@app.after#u request#这不起作用
def添加_标题(响应):
response.cache\u control.max\u age=10
返回响应
我创建了一个标志文件。摄像头和html脚本定期从服务器请求文件的值。若它是一个特殊值,摄像机开始记录并通过FTP发送它,然后服务器将标志的值更改为另一个值。若html脚本获得该值,它将重新加载自身,服务器将标志的值更改为默认值
我还在视频链接的末尾添加了随机时间戳
例如:
"<video src="dynamic/sc.mp4?t=%d" type="video/mp4" controls> </video>" % random_value
“”%random\u值
因为浏览器不想重新加载视频,因为它的路径没有改变
无论如何,如果任何人需要这样的东西,可以使用这种方法。不是100%的效率,但它可以工作
问候
Suat我创建了一个标志文件。摄像头和html脚本定期从服务器请求文件的值。若它是一个特殊值,摄像机开始记录并通过FTP发送它,然后服务器将标志的值更改为另一个值。若html脚本获得该值,它将重新加载自身,服务器将标志的值更改为默认值 我还在视频链接的末尾添加了随机时间戳 例如:
"<video src="dynamic/sc.mp4?t=%d" type="video/mp4" controls> </video>" % random_value
“”%random\u值
因为浏览器不想重新加载视频,因为它的路径没有改变
无论如何,如果任何人需要这样的东西,可以使用这种方法。不是100%的效率,但它可以工作
问候
酸溜溜