python - 基于MySQL数据库使用Flask更新网页。

标签 python mysql client-server flask webpage

我有一个网页(使用 HTML 和 jQuery 构建)显示来自 MySQL 数据库的数据。我正在使用 Flask 将 HTML 连接到我的数据库。但是,我的数据库每 15 分钟更新一次(使用单独的 Python 脚本)。目前,我停止 flask 服务器,更新数据库并重新启动 Flask 以更新网页。我的问题如下:

有没有办法在不停止flask服务器的情况下在后台更新MySQL数据库?我阅读了有关 AJAX 和 CRON 的概念,但是我无法理解如何将它们与 flask 异步使用。

注意:我是网络应用程序的新手,这是我的第一个涉及连接客户端和服务器端的项目。任何帮助将不胜感激。

谢谢

最佳答案

你很可能在做这样的事情:

from flask import Flask, render_template
from yourMySqlLibrary import connect_to_mysql

conn = connect_to_mysql()
# This is only executed when you start the script
data = conn.execute("SELECT * FROM MySemiRegularlyUpdatedTable")

app = Flask(__name__)

@app.route("/")
def view_data():
    return render_template("view_data.html", data=data)

if __name__ == "__main__":
    app.run()

如果是这种情况,那么您的解决方案就是将您的连接和查询调用移到您的 Controller 中,这样每次您点击页面时都会重新查询数据库:

@app.route("/")
def view_data():
    # Removed from above and placed here
    # The connection is made to the database for each request
    conn = connect_to_mysql()
    # This is only executed on every request
    data = conn.execute("SELECT * FROM MySemiRegularlyUpdatedTable")
    return render_template("view_data.html", data=data)

这样,您的 View 将在您的数据更新时更新 - 并且您不必为了获取数据更改而重新启动服务器。

关于python - 基于MySQL数据库使用Flask更新网页。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14870553/

相关文章:

python - 计算 Pandas 数据框设置的范围内的日期

python - Pandas 从 Excel 创建合并报告

MySQL 处理超过 24 小时的日期格式

php - 是否可以将搜索数据导出到 csv 文件

Java ServerSocket 不会从客户端发送或接收消息

qt - 服务器 QTcpSocket "breaks"太快了,客户端没有收到所有数据,知道为什么吗?

python - 通过 Viewset Django Rest Framework 进行部分更新失败

python - 如何将值分配给列表中的 python 字典

mysql - 为什么减去 unsigned int 列的值的查询在某些情况下会失败?

Java HTTP webbit如何发送/接收消息