Почему мои записи SQLite в таблицу имеют одинаковую метку даты? - PullRequest
0 голосов
/ 19 февраля 2019
import time
import subprocess
from tkinter import *
from w1thermsensor import W1ThermSensor
import time
import datetime
import sqlite3
root = Tk()
id = 1

conn = sqlite3.connect('temp_sensor2.db')
c = conn.cursor()

sensor = W1ThermSensor()
temperature = sensor.get_temperature()

t = int(time.time())
date = str (datetime.datetime.fromtimestamp(t).strftime('%d-%m-%Y %H:%M:%S'))
global tempLabel1


def get_temp(period_ms):

    temperature = sensor.get_temperature()
    tempLabel1['text'] = temperature
    tempLabel1.after(period_ms, get_temp, period_ms)

    c.execute('''INSERT INTO datetemp VALUES (?, ?, ?)''',(id, date, temperature));
    conn.commit()

root.title('Temperature')

tempLabel2 = Label(root, text="Temperature is ")
tempLabel2.pack()
tempLabel1 = Label(root, width=25)
tempLabel1.pack()

get_temp(1000)


root.mainloop()

У меня есть программа, которая контролирует температуру и автоматически обновляет ярлык tkinter.Я также хотел бы, чтобы он обновлял базу данных SQLite, однако он вводит в таблицу несколько записей с одинаковой меткой даты (хотя показания температуры будут другими).Любые идеи будут оценены!

1 Ответ

0 голосов
/ 19 февраля 2019
t = int(time.time())
date = str (datetime.datetime.fromtimestamp(t).strftime('%d-%m-%Y %H:%M:%S'))

Эти две строки кода запускаются один раз, когда ваша программа запускается, и переменная date после этого никогда не меняется.

Если вы переместите эти строки внутри функции get_temp(), тобудет использоваться текущая метка времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...