SQLite作为一款轻型数据库,管理工具有很多,比如SQLite Expert Professional,很适合用来存储Python网站,爬虫的相关数据,下面列出基本的增删查改操作
读取操作:
conn1 = sqlite3.connect(board.DatabasePath)conn1.row_factory = sqlite3.Rowconn1.execute("pragma foreign_key=on")c1 = conn1.cursor()try:#执行查询操作 c1.execute("\select username as username \from \ register \where name=?;", \ (username,))#异常处理except (sqlite3.DatabaseError) as e: print e return Noneelse: user_row = c1.fetchone() #调用数据finally: conn1.close()#关闭连接
增加数据:
conn = sqlite3.connect(board.DatabasePath)conn.row_factory = sqlite3.Rowconn.execute("pragma foreign_key=on")c = conn.cursor()md5 = hashlib.md5()md5.update(password)encrypted_passwd = md5.hexdigest()try:#增加数据 c.execute("\ insert into register (name,work,email,username,password) values (?,?,?,?,?);", \ (name, workplace, email, username, encrypted_passwd)) c.execute("select last_insert_rowid() as user_id from register;")except (sqlite3.DatabaseError) as e: print e conn.rollback() return Falseelse: conn.commit() return Truefinally: conn.close()
删除操作:
conn=sqlite3.connect(board.DatabasePath)conn.execute("pragma foreign_key=on")conn.row_factory=sqlite3.Rowc=conn.cursor()try: c.execute("\delete from setting where key=? and parent_id=?;",\(self.slick.key,self.id))except (sqlite3.DatabaseError) as e: print e conn.rollback() return Falseelse: conn.commit() self.slick.items.pop(self.id) self=None return Truefinally: conn.close()
修改操作:
conn=sqlite3.connect(board.DatabasePath)conn.execute("pragma foreign_key=on")conn.row_factory=sqlite3.Rowc=conn.cursor()try: c.execute("\update setting set value=? where key=? and name=?;",\(self.title,self.key,"jumbotron_title")) c.execute("\update setting set value=? where key=? and name=?;",\(self.content,self.key,"jumbotron_content"))except (sqlite3.DatabaseError) as e: print e conn.rollback() return Falseelse: conn.commit() return Truefinally: conn.close()