如何解决尝试使用 threading.Timer 定期运行 Flask 应用程序
from flask import Flask,request,abort,render_template
from News.News import News,news1_title,news1_topline
app = Flask(__name__)
app.register_blueprint(News,url_prefix="/News")
@app.route('/')
def index():
return render_template(
'index.html',news1_title_html = news1_title,news1_topline_html = news1_topline,)
threading.Timer(30,index).start()
index()
if __name__ == '__main__':
app.run(debug=True,host='0.0.0.0')
我试图让 Flask 应用程序每 30 秒运行一次,以便为我的 Flask 服务器刷新来自新闻网站的解析数据。数据通过 html 模板 (index.html) 显示。我收到一个 AttributeError: 'nonetype' object has no attribute 'app' 并且 render_template 似乎有问题。
我对此很陌生,抱歉,如果这是一个愚蠢的问题。
解决方法
您是否尝试添加
useLayoutEffect
在你的 HTML 中?
您的应用是什么样的?
基本的烧瓶应用:
<meta http-equiv="refresh" content="30" >
你可以通过几种方式做到这一点,我认为:
-
使用调度程序:
from flask import Flask app = Flask(__name__) @app.route("/") def home (): return render_template("index.html") # I'd go with debug for now: if __name__ == '__main__': app.run(debug=True)
-
使用线程:
导入线程
from appscheduler.scheduler import Scheduler
sched = Scheduler()
def func_for_getting_news:
#get the news
sched.add_interval_job(funcfor_gettin_news,minutes=1)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。