后端数据已更新,但不能同步更新到前端网页,必须重启服务才行

学习flask已有段时间了,在windows系统部署的服务,通过pywsgi.WSGIServer方式部署。后端数据在服务器的mysql数据库,通过db.session.execute(db = SQLAlchemy(app))方式抽取的数据,展示在前端网页。目前的问题是1、我更改了py脚本后,点击刷新前端网页,但是同步不了更改的内容 2、mysql数据库的数据更改后,点击刷新前端网页,无法同步更改的内容。
试了网上找3个办法都不行,求助
1、app.config.update(DEBUG=True)
2、app.debug = True
3、app.run(debug=True)

有几个问题不太清楚, 希望能有更多的补充:

这里db.session.execute是指代通过ORM来获取数据吗?能否提供更详细的代码?

根据上下文,这里的内容是指从数据库中获取的内容,能否提供一下相关的视图函数代码与模板代码

Flask的debug模式是指在代码发生更改时重载应用,如果是数据库的更改或者模板的更改是无法触发的。

#数据库信息
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://user:password@ip:port/dimension_dt'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False  # 关闭对模型修改的监控

db = SQLAlchemy(app)


name_ = db.session.execute(text('select names from user')).fetchall()[0][0]
movie_ =db.session.execute(text('select title,year from movie')).fetchall() 

@app.route('/')
def index():
    return render_template('index.html', name=name_, movies=movie_)
    
#启动服务
if __name__ == '__main__':
    server = pywsgi.WSGIServer(('127.0.0.1', 5000), app)
    server.serve_forever()

社区不支持大量的代码上传,我就只粘贴了从数据库取数的代码传上来

如果可以,希望能提供一个仓库的链接。
另外,论坛支持markdown语法的,下次粘贴代码可以使用markdown语法来格式化

显然,你的查库操作只会在程序运行初始阶段执行一次,后续的请求都不会再进行查库,你可以尝试这么更改:

... 其他代码 ...
@app.route('/')
def index():
    name_ = db.session.execute(text('select names from user')).fetchall()[0][0]
    movie_ =db.session.execute(text('select title,year from movie')).fetchall() 
    return render_template('index.html', name=name_, movies=movie_)
... 其他代码 ...
1 Like

非常感谢,已改正,后端数据可以更新到前端了