接着上一篇,该篇讲述使用python对数据库进行基本的CRUD操作,这边以sqlite3为例子,进行说明。sqlite3 是一个非常轻型的数据库,安装和使用它是非常简单的,这边就不进行讲述了。
在python下,已经自带了sqlite3模块,供我们使用,这个模块的用途其实和java当中的jdbc驱动是类似的,通过它,我们就可以非常方便的和sqlite3进行各种操作了。
好了,开始吧。
python的数据库模块有统一的接口标准,所有的操作都有统一的模式,大概是分为以下几步(假设使用的是sqlite3模块):
具体的相关CRUD实现代码如下:
import osimport sqlite3#根据传入的path获取一个数据库连接,如果path非法,那么创建一个临时的内存数据库def get_conn(path): conn = sqlite3.connect(path) if os.path.exists(path) and os.path.isfile(path): PRint('database path is %s' % format(path)) return conn else: conn = None return sqlite3.connect(':memory')
#获取游标def get_cursor(conn): if conn is not None: return conn.cursor() else: return get_conn('').cursor()
#创建表数据def create_table(conn, sql): if sql is not None and sql != '': cursor = get_cursor(conn) cursor.execute(sql) conn.commit() close_all(conn, cursor)#关闭数据库连接def close_all(conn, cursor): try: if cursor is not None: cursor.close() finally: if conn is not None: conn.close()
#CURD操作,需要返回值,查询是肯定有返回值def crud(conn, sql, data): cursor = get_cursor(conn) n = cursor.execute(sql, data) print("n", n.rowcount) fetchall = cursor.fetchall() conn.commit() close_all(conn, cursor) return fetchall
#CRUD操作,不需要返回值,查询是肯定有返回值def crud(conn, sql, data): cursor = get_cursor(conn) n = cursor.execute(sql, data) conn.commit() close_all(conn, cursor)
一个简单的例子:
conn = get_conn('D:/temp/sqlite3/test.db')fetchall = crud(conn, 'select * from student', '')#假设返回的数据有三个字段for row in fetchall: print('name: %s, age: %d, address: %s' % (row[0], row[1], row[2]))
好了,上面的代码就是最简单的对python的数据库操作了。
大家如果有什么问题或者文件有什么错误的话,可以留言大家一起探讨!
新闻热点
疑难解答