Webiopi (Raspberry pi) 与 sql 或 sqlite

Webiopi (Raspberry pi) with sql or sqlite

我在使数据库与 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

谢谢

对于数据库,你可以使用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