我的.fetchall()在我的Flask应用程序上没有更新?

时间:2016-10-23 09:50:25

标签: python mysql flask

此coe应显示当前在数据库中的所有记录,但事实并非如此。重新加载页面时,它不会显示添加到数据库的最新行。

mod = Blueprint('home', __name__)
conn = engine.connect()

def grabData():
    query = text(
        "SELECT * FROM "
            "users "
        "ORDER BY id DESC "
    )
    rows = conn.execute(query).fetchall()
    return rows

@mod.route('/')
def home():
    return render_template('index.html', result=grabData())

MySQL Workbench 显示新行存在。重新启动烧瓶应用程序后,将显示新行。

我还尝试将查询放在home()中,但这也不起作用。我有什么想法我做错了吗?

1 个答案:

答案 0 :(得分:0)

我首先想要感谢大家的评论,我找到了答案,我希望用户@davidism会发布它,但我想我会,但这是他的全部学分。

所以他的评论是,我引用,"不要在全球范围内打开连接,为每个请求打开它"。那我该怎么办?我只针对每个请求打开了数据库连接,这实际上解决了我的问题。

而不是原始帖子上的代码,这就是我最终要做的工作。

mod = Blueprint('home', __name__)

def grabData():
    conn = engine.connect()
    query = text(
        "SELECT * FROM "
            "users "
        "ORDER BY id DESC "
    )
    rows = conn.execute(query).fetchall()
    conn.close()
    return rows

@mod.route('/')
def home():
    return render_template('index.html', result=grabData())