如何解决即使代码有效,也会出现属性错误有关系吗?
我正在调用函数属性以在Flask应用程序的while循环中更新变量,然后将响应中的数据发送至模板JS以更新css属性-这是在PyTube中更新进度条。 / p>
我在Powershell中收到'AttributeError:'function'对象没有属性'完成百分比'。
我的代码有效并且有效。
尽管我想遵循最佳实践并编写正确的代码,但在这种情况下,由于我找不到其他解决方案,因此可以解决此问题。
作为Python和Flask的新手,我想知道此错误是否重要,如果有的话,它将产生什么负面影响?
def on_progress(stream,chunk,bytes_remaining):
total_size = stream.filesize
bytes_downloaded = total_size - bytes_remaining
on_progress.percentage_of_completion = bytes_downloaded / total_size * 100
包含while循环的路由
@app.route('/progress')
def progress():
def generate():
x = 0
while x <= 100:
x = round(on_progress.percentage_of_completion)
yield "data:" + str(x) + "\n\n"
time.sleep(0.1)
return Response(generate(),mimetype= 'text/event-stream')
模板JS
var source = new EventSource("/progress");
source.onmessage = function(event) {
$('.progress-bar').css('width',event.data+'%').attr('aria-valueNow',event.data);
$('.progress-bar-label').text(event.data+'%');
if(event.data == 100){
source.close()
}
}
模板CSS
<div class="progress" style="width: 50%; margin: 50px;">
<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valueNow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
<span class="progress-bar-label">0%</span>
</div>
</div>
解决方法
您收到的错误消息很简单。 on_progress
实体是一个函数,没有percentage_of_completion
属性。
您可能想要做的就是更改功能,以使其返回完成百分比:
def on_progress(stream,chunk,bytes_remaining):
total_size = stream.filesize
bytes_downloaded = total_size - bytes_remaining
return bytes_downloaded / total_size * 100
然后正确使用它作为函数调用:
...
while x <= 100:
x = round(on_progress())
...
请注意,我还没有阅读您的其余代码,您可能还有其他一些我没有考虑的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。