烧瓶中的动态数据不会改变

时间:2020-03-27 17:06:06

标签: python json api flask pymysql

我正在尝试在Flask中制作一个API,但是当我加载API,然后更改数据库中的数据并重新加载页面时,除非重新启动程序,否则数据不会更改。当程序运行并且更改数据库中的数据时,如何在浏览器中刷新API时看到它?预先感谢。

这是代码:

from flask import Flask, jsonify, request 
import pymysql.cursors

connection = pymysql.connect(host='127.0.0.1',
user='root',
password='myroot',
db='test',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)

app = Flask(__name__) 

@app.route('/', methods=['GET'])
def test():
    with connection.cursor() as cursor:
        connection.connect()
        sql = "SELECT * FROM importantData"
        cursor.execute(sql)
        result = cursor.fetchall()
    return jsonify(result)

@app.route('/locations', methods=['GET'])
def test1():
    with connection.cursor() as cursor:
        connection.connect()
        sql = "SELECT * FROM locations"
        cursor.execute(sql)
        result = cursor.fetchall()
    return jsonify(result)


    if __name__ == '__main__':
        app.run(port=8080) 

编辑: 解决的办法是我必须在每个路由功能中打开数据库连接,编辑代码,以便现在可以按预期工作。

2 个答案:

答案 0 :(得分:0)

我从没用过pymysql,除了那部分外,您的代码看起来还不错:

result = cursor.fetchone()

当您清楚地fetchone()选择所有内容时,为什么select *呢? I change data in database是什么意思,您更改了行还是插入了新行?

在任何情况下,看起来您似乎只选择fetchone()的第一行,因此即使您更改了其他内容,或者添加了新行,您也永远不会看到新的修改

答案 1 :(得分:0)

解决方案是我必须在每个路由功能中打开数据库连接,编辑代码,以便现在按预期工作