Flask 应用程序在不重新启动的情况下不会更新从数据库获取的数据

问题描述 投票:0回答:2

我的 Flask 应用程序遇到问题,当我插入新数据时,它不会更新从数据库获取的数据。该应用程序仅获取我启动应用程序时获取的旧数据。无论我插入多少新数据,获取的数据都不会更新,直到我使用 ctrl+c 停止 Flask 应用程序并使用 Flask run 再次运行它来重新启动它。 我尝试像这样禁用缓存:

cache = Cache(app, config={'CACHE_TYPE': 'null'})

然而,这并没有成功。我还检查了用户类、查询和函数,一切似乎都运行良好并显示结果。另外,我正在使用这样的提交:

cursor.execute(query, data)
self.conn.commit()

**这是我的配置: **

async_mode = None

app = Flask(__name__)

class MyApp:
    def __init__(self):
        self.app = app
        self.app.add_url_rule('/', 'home', self.home,
                              methods=["GET", "POST"])
        self.app.config['DEBUG'] = True
        # Secure session configuration
        self.app.config['SESSION_TYPE'] = 'filesystem'
        self.app.config['SESSION_FILE_DIR'] = '/tmp/flask_session'
        # Whether the session cookie should be secure (i.e., HTTPS only)
        self.app.config['SESSION_COOKIE_SECURE'] = True
        # Prevents JavaScript from accessing the session cookie
        self.app.config['SESSION_COOKIE_HTTPONLY'] = True
        self.app.config['SESSION_PERMANENT'] = False
        self.app.config['SESSION_COOKIE_SAMESITE'] = 'Strict'
        self.app.config['SECURITY_PASSWORD_SALT'] = 'password_salt'
        # 'development', 'production', or 'testing'
        self.app.config['ENV'] = 'development'
        # Disables testing
        self.app.config['TESTING'] = False
        self.app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0

    def run(self):
        self.app.run()

有什么方法可以在不重新启动 Flask 应用程序的情况下查看更新吗?任何帮助,将不胜感激。预先感谢!

我尝试像这样禁用缓存:

cache = Cache(app, config={'CACHE_TYPE': 'null'})

然而,这并没有成功。我还检查了用户类、查询和函数,一切似乎都运行良好并显示结果。另外,我正在使用这样的提交:

cursor.execute(query, data)
self.conn.commit()
python flask web web-applications python-webbrowser
2个回答
0
投票

每次都必须使用任务来获取数据库。 烧瓶中没有任何事件(据我所知)每次在数据库中插入内容时都会发生变化。 (如果这是问题,如果不是,你能说得更具体一些吗?)


0
投票

INSERT/UPDATE 使用提交后记录将被更新。

db = pymysql.connect(host = "localhost", user = "username",password= 
"password", database="se",port=3306)

db.commit()
© www.soinside.com 2019 - 2024. All rights reserved.