Я новичок в программировании и хотел бы получить небольшую помощь в изучении SQLite и Python.
В настоящее время у меня есть база данных "Status.db", которая содержит два столбца.Это столбцы «stamp», тип INT и «messages», тип TEXT, последовательно.
Код, который я использую, чтобы попытаться прочитать один экземпляр сообщения с определенным штампом, ID, в переменную«вывод» выглядит следующим образом:
@cherrypy.expose
def comment(self, ID = None):
con = lite.connect('static/database/Status.db')
with con:
cur = con.cursor()
cur.execute("SELECT messages FROM Status WHERE stamp is ?", (ID,))
temp = cur.fetchone()
output = temp[0]
Однако, когда я выполняю этот код, я получаю сообщение об ошибке, которое гласит:
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.7/cherrypy/_cprequest.py", line 606, in respond
cherrypy.response.body = self.handler()
File "/usr/lib/pymodules/python2.7/cherrypy/_cpdispatch.py", line 25, in __call__
return self.callable(*self.args, **self.kwargs)
File "proj1base.py", line 176, in comment
output = temp[0]
TypeError: 'NoneType' object is not subscriptable
Мне интересно, если кто-нибудь мог бы объяснить мнечто означает эта ошибка, и что я мог сделать, чтобы она заработала.
Заранее спасибо!
РЕДАКТИРОВАТЬ: Вот код, который создан и записывается в базу данных
@cherrypy.expose
def writeStatus(self, newStatus=None, post=None):
"""Update the status file with the most recent status update
by inserting a timestamp and new status into a database
"""
con = lite.connect('static/database/Status.db')
stamp = time()
with con:
cur = con.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS Status(stamp INT, messages TEXT)")
cur.execute("INSERT INTO Status VALUES(?, ?)", (stamp, newStatus))