为什么我进入表的SQLite条目具有相同的日期戳?

时间:2019-02-19 16:24:50

标签: python sqlite tkinter

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 :(得分:2)

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

程序启动时,这两行代码运行一次,而date变量在此之后永远不会改变。

如果在get_temp()函数中移动这些行,则它将使用当前时间戳。