Webiopi(Raspberry pi)用sql或sqlite

时间:2015-01-24 07:36:48

标签: python mysql sqlite raspberry-pi webiopi

我在使用webiopi进行数据库工作时遇到了一些问题。我已经导入了sqlite3并更改了文件夹权限,但是当我运行webiopi时,没有创建任何内容。但是,f.write('This is a test\n')每个进程正常工作后的其他函数会重复循环。希望你能帮帮我吗?

def loop():
    db = sqlite3.connect('schedule.db')
    db.execute('DROP TABLE IF EXISTS schedule')
    db.execute('CREATE TABLE schedule (hour int, minute int, second int, status text)')
    db.execute('INSERT INTO schedule (hour,minute,second,status) VALUES (?,?,?,?)',(sche.get('hour'),sche.get('minute'),sche.get('second'),"yes"))
    db.commit()
    f = open('workfile', 'w')
    f.write('This is a test\n')
    loop1=1
    while ((now.minute >= minute_ON) and (now.minute < minute_OFF) and (loop1<stepping)):
        step()
        loop1=loop1+1

谢谢

1 个答案:

答案 0 :(得分:0)

对于数据库,您可以更好地使用cursor和conn。有关详情,请参阅doc

对于文件,当您不将其用于写入数据时,可以close()。 以下代码可能会有所帮助:

def loop():
    db = sqlite3.connect('schedule.db')
    cur = db.cursor() # create a cursor
    cur.execute('DROP TABLE IF EXISTS schedule')
    cur.execute('CREATE TABLE schedule (hour int, minute int, second int, status text)')
    cur.execute('INSERT INTO schedule (hour,minute,second,status) VALUES (?,?,?,?)',(sche.get('hour'),sche.get('minute'),sche.get('second'),"yes"))
    db.commit()

    cur.close() # close cursor
    db.close() # close connection to sqlite3

    f = open('workfile', 'w')
    f.write('This is a test\n')
    f.close() # close file to write data

    loop1=1
    while ((now.minute >= minute_ON) and (now.minute < minute_OFF) and (loop1<stepping)):
        step()
        loop1=loop1+1