python判断sqlite数据库是否存在_Python和SQLite:检查数据库中是否存在项?

我有一个方法,可以将想要注册的用户的用户名和密码写入数据库。在将他们提供的用户名和密码存储到数据库中之前,我想检查他们选择的用户名是否已经存在于“挂起”列表或已批准的“联系人”列表中。

下面是我用来做这件事的代码:@cherrypy.expose

def writePending(self, username=None, password=None, message=None, signin=None):

""" Add request of friendship into a database which stores all

pending friendships.

"""

page = get_file(staticfolder + "/html/friendingPage.html")

if username != "" and password != "" and message !="":

con = lite.connect('static/database/Friendship.db')

cur = con.cursor()

with con:

cur.execute("CREATE TABLE IF NOT EXISTS pending(user TEXT, pass TEXT, info TEXT)")

cur.execute("CREATE TABLE IF NOT EXISTS contacts(user TEXT, pass TEXT)")

"Check to see if the username is already registered"

cur.execute("Select * from pending where user = ?", (username, ))

check1=cur.fetchone()

cur.execute("Select * from contacts where user = ?", (username, ))

check2=cur.fetchone()

if check1[0] != None:

page = page.replace("$Error", "The ID you used is still pending for friendship")

elif check2[0] != None:

page = page.replace("$Error", "The ID you used is already added as a contact")

else:

cur.execute("CREATE TABLE IF NOT EXISTS pending(user TEXT, pass TEXT, info TEXT)")

cur.execute("INSERT INTO pending VALUES(?, ?, ?)", (username, password, message))

page = get_file(staticfolder + "/html/thankYouPage.html")

else:

page = get_file(staticfolder + "/html/friendingPage.html")

page = page.replace("$Error", "You Must fill out all fields to proceed")

return page

不过,我得到的信息是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 540, in writePending

if type(check1[0]) != None:

TypeError: 'NoneType' object is not subscriptable

我想知道我能做些什么来避免?

谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值