【发布时间】:2021-08-30 08:52:45
【问题描述】:
我有一个烧瓶放置区来上传文件。
上传完成后,我想在 html 网站上打印日志文本
到目前为止它可以工作,唯一的问题是 - div 标签在第二次上传后不会更新日志文本。该网站保留第一次上传的文本。
index.html:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script>
$(function(){
window.setInterval(function() {
loadNewLogger()
}, 500)
function loadNewLogger(){
$.ajax({
url:"/write_log",
type: "POST",
datatype: "json",
success: function(data){
$(logger).replaceWith(data)
}
});
}
});
</script>
<body>
<div style="color:rgb(0, 0, 0);text-align:center">
CDR PIPELINE </div>
{{ dropzone.create(action='upload') }}
{{ dropzone.load_js() }}
{{ dropzone.config() }}
<div id="logger">
{{ logger }}
</div>
</body>
</html>
logger.html(否则我会渲染 index.html 两次)
<div id="logger">
{{ logger }}
</div>
摘自flask_app.py:
@app.route('/',methods=['POST','GET'])
def upload():
if request.method == 'POST':
f = request.files.get('file')
f.save(os.path.join(app.config['UPLOADED_PATH'],f.filename))
upload.logger = ""
es.main()
upload.logger = es.main.result
return upload.logger
return render_template('index.html')
@app.route('/write_log',methods=['POST'])
def log():
logger = upload.logger
return jsonify('', render_template('logger.html', logger=logger))
为什么它只从upload.logger 更新文本一次?
【问题讨论】:
-
这里的
$(logger)是什么? -
div id="logger"
-
你检查ajax请求是否执行了吗?将控制台放在您的成功函数中,看看它是否在每个时间间隔都打印出来。