Постоянное получение данных SQL таблицы с помощью программы на python используя pymysql
Нужно постоянно получать обновленные данные из SQL таблицы с помощью модуля pymysql. Написал такую программу:
import pymysql
import sys
try:
connection = pymysql.connect(
host = "127.0.0.1",
user = "user",
password = "UpbLTHjpnp[Pr2X6",
database = "new",
cursorclass = pymysql.cursors.DictCursor
)
except:
sys.exit()
def parse_db(db_name):
with connection.cursor() as cursor:
cursor.execute(f"SELECT * FROM `{db_name}`;")
return cursor.fetchall()
def get_tasks():
while True:
tasks = parse_db("tasks")
headers = []
for i in range(len(tasks)):
headers.append(tasks[i]["header"])
print(headers)
get_tasks()
Проблема заключается в том, что если во время работы программы добавить в SQL таблицу новые данные, программа их показывать не будет, то есть для просмотра обновленных данных мне нужно перезапустить программу. Как это сделать без перезапуска?
Ответы (1 шт):
Автор решения: zankorobos
→ Ссылка
Надо было просто обновлять соединение в функции parse_db()
import pymysql
import sys
try:
connection = pymysql.connect(
host = "127.0.0.1",
user = "user",
password = "UpbLTHjpnp[Pr2X6", #root - root
database = "new",
cursorclass = pymysql.cursors.DictCursor
)
except:
sys.exit()
def parse_db(db_name):
try:
connection = pymysql.connect(
host = "127.0.0.1",
user = "user",
password = "UpbLTHjpnp[Pr2X6", #root - root
database = "new",
cursorclass = pymysql.cursors.DictCursor
)
except:
sys.exit()
with connection.cursor() as cursor:
cursor.execute(f"SELECT * FROM `{db_name}`;")
return cursor.fetchall()
def get_tasks():
while True:
tasks = parse_db("tasks")
headers = []
for i in range(len(tasks)):
headers.append(tasks[i]["header"])
print(headers)
get_tasks()