@Lim_Drake

Как выводить данные пополняющиеся в реальном времени в базу данных sqlite?

Здравствуйте! Хочу сделать блокнот событий работы программы парсинга сайта, по типу "Завершен парсинг 1 из 5 страниц...", появилась идея использовать Sqlite для того чтобы создать базу данных, которая пополняется событиями.
Это я делаю для того чтобы, выводить его на форму, созданную в Qt Designer Pyqt5, в textEdit
Подобным образом, я предполагаю заполнение базы событиями:
r3 = 'Завершено скачивание данных ' + str(count_page) + ' из ' + str(max_count_pages) + ' страниц'
            datasm = (sql_count,r3)
            sql_insert(con,datasm)
            sql_count =+ 1

Возможно ли делать запросы, которые бы выводили события в реальном времени, то есть, как только произошло заполнение, выводить данные на экран? Если возможно, прошу поделиться сведениями!
Я заранее прошу прощения, это только моя идея, и я владею только поверхностными знаниями в этой области.
  • Вопрос задан
  • 402 просмотра
Пригласить эксперта
Ответы на вопрос 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Вот простой код, который и выводит данные на страницу, и заносит их в базу:
import sqlite3
import time
from datetime import datetime

conn = sqlite3.connect('events.db')
cursor = conn.cursor()

sql = """CREATE TABLE IF NOT EXISTS events(id INTEGER PRIMARY KEY AUTOINCREMENT,
                                        page int,
                                        status text,
                                        date text)"""

cursor.execute(sql)

def add_event(page,status): # Метод добавления в базу: page - номер текущей страници, status - OK или ERROR
    date_now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    cursor.execute("INSERT INTO events VALUES(?,?,?,?)",(None, page, status, date_now))
    conn.commit()
    pass


max_page = 5

for page in range(1,max_page+1):
    try:
        # Тут сам парсинг, или метод парсинга
        print(f'Завершено скачивание данных {str(page)} из {str(max_page)} страниц')
        add_event(page,'OK')
        time.sleep(0.5)
    except:
        print(f'Ошибка парсинга на странице {page}')
        add_event(page,'ERROR')

conn.close()

PS: Изначально в вопросе о Pyqt5 речи не было.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы