python - 在 FLASK 中,有没有办法在页面打开时运行 python 函数?
问题描述
我得到了 FLASK 应用程序,其中一条路线呈现具有特定参数的 Folium 地图。folium 地图被加载到每 x 分钟刷新一次的 iframe 中。地图生成由 html 表单触发。
烧瓶部分:
@app.route('/hermesmap', methods=['GET','POST'])
def hermesMap():
if request.method == "POST":
userName = request.form['username']
password = request.form['password']
server = request.form['server']
server = server[8:-1]
ascii_pass = base64.urlsafe_b64encode(password.encode("ASCII"))
sshpass = str(ascii_pass)
sshpass = sshpass.replace("b","")
sshpass = sshpass.replace("\'","")
hermesMapGen.mapUpdate(userName,sshpass,server)
return render_template("hermesMap.html")
“hermesMapGen”正在生成一个带有插入参数的叶地图,这是需要每五分钟调用一次的函数,因此地图将具有更新的数据。
这是 HTML:
<!DOCTYPE html>
<html>
{%block content%}
<div class="custom-height-map" style="position:relative;padding-top:42.25%;border-style:solid;border-width:6px;">
<iframe src="{{url_for('static',filename='sfMarketMap.html')}}" id='hermesmap' frameborder="0" allowfullscreen
style="position:absolute;top:0;left:0;width:100%;height:100%;"></iframe>
</div>
<script>
window.setInterval(function() {
reloadIFrame()
}, 300000);
function reloadIFrame() {
console.log('reloading..');
document.getElementById('hermesmap').contentWindow.location.reload();
}
</script>
{%endblock%}
</html>
有没有一种方法可以在浏览器中打开地图页面时运行生成地图的功能?
预先感谢
更新:到目前为止,我能够找到使用 javascript 的解决方法。我将以下代码放在初始表单页面中,强制它甚至每 x 分钟模拟一次“点击”,但我认为应该有更好/正确的方法来做到这一点。
<script>
var btn = document.querySelector("[name='lookup']");
//console.log(btn);
setInterval(function(){
btn.click();
},200000);
//Handling of click event
btn.onclick=function(){
console.log('clicked');
}
</script>
解决方案
推荐阅读
- angular - Angular Material MatMomentDateModule 导入所有 Moment 语言环境
- jquery - almasaeed2010/adminlte v2.4.18 需要 bower-asset/jquery
- angularjs - 与 Django 的数据表集成
- c++ - C++ 中的 Lambda 泛型
- java - Error instantiating servlet class [*] 如何解决这个错误
- google-apps-script - 让按钮用另一张纸上的列中的下一个可用数字自动填充单元格的最佳方法是什么?
- python - 使用 Django webapp 登录 Azure
- php - 循环遍历数组 - 从此创建新数组
- r - 这个迭代可以用整洁的函数方式编写吗
- laravel - 调用未定义的方法 Illuminate\Database\Eloquent\Builder::morphWith