在一些小的应用中,不免会用到数据库,Sqlite数据库以其小巧轻便,无需安装,移植性好著称,本文主要以一个简单的小例子,简述Python在Sqlite数据库方面的应用,仅供学习分享使用,若有不足之处,还请指正。sql
关于Python操做sqlite3的相关核心代码,以下所示:数据库
建立数据表数组
1 def createDb(): 2 """建立db数据表""" 3 sql = ''' 4 create table person ( 5 id integer primary key autoincrement not null, 6 name varchar not null, 7 age integer 8 ) 9 ''' 10 executeSql(sql)
插入语句ide
1 def insertData(name, age): 2 """插入数据""" 3 sql = 'insert into person (name,age)values(?,?)' 4 executeSql(sql, (name, age))
update语句函数
1 def updateData(id, name, age): 2 """经过ID进行修改语句""" 3 sql = 'update person set name=?,age =? where id=?' 4 executeSql(sql, (name, age, id))
delete语句学习
1 def deleteData(id): 2 """经过ID删除数据""" 3 sql = 'delete from person where id=?' 4 executeSql(sql, (id,))
上面的语句都调用统一的executeSql方法,以下所示:fetch
1 def executeSql(sql, *args): 2 """执行更新语句""" 3 conn = sqlite3.connect(dbfile) 4 cur = conn.cursor() 5 try: 6 cur.execute(sql, *args) 7 conn.commit() 8 print('执行成功,影响行数:', cur.rowcount) 9 except Exception as e: 10 conn.rollback() 11 print(e) 12 print('执行失败') 13 finally: 14 cur.close() 15 conn.close()
查询语句(无条件查询)ui
1 def queryData(): 2 """查询语句""" 3 sql = 'select id,name,age from person ' 4 executeQuerySql(sql)
查询语句(条件查询)spa
1 def queryDataById(id): 2 """经过id进行查询""" 3 sql = 'select id,name,age from person where id = ? ' 4 executeQuerySql(sql, (id,))
上面的查询语句,都调用统一的executeQuerySql方法,以下所示:3d
1 def executeQuerySql(sql, *args): 2 """执行查询语句,可带参数""" 3 conn = sqlite3.connect(dbfile) 4 cur = conn.cursor() 5 try: 6 cur.execute(sql, *args) 7 persons = cur.fetchall() 8 for p in persons: 9 print('当前行信息以下:') 10 print(p) # 返回的是一个元组tuple 11 print('查询成功') 12 except Exception as e: 13 print(e) 14 print('查询失败') 15 finally: 16 cur.close() 17 conn.close()
关于本例子的执行源码,可经过连接进行下载,以下所示:
Python的参数传递一共有如下五种(位置参数、默认参数、变长参数、关键字参数、命名关键字参数)
位置传递,即参数按照定义的位置及顺序进行传递,以下所示:
1 # 位置传递实例: 2 def fun1(a, b, c): 3 return a + b + c 4 5 6 print(fun1(1, 2, 3))
关键字传递,即经过传递的参数的名称进行识别。
1 # 关键字传递 2 def fun2(a, b, c): 3 return a + b + c 4 5 6 print(fun2(1, c=3, b=2))
默认值参数传递,即给某些参数设置一个默认值,若是不传则读取默认值。
1 # 默认值传递 2 def fun3(a, b=2, c=3): 3 return a + b + c 4 5 6 print(fun3(a=1))
元组传递,在定义函数时,咱们有时候并不知道调用的时候会传递多少个参数。元组参数来进行参数传递会很是有用。以下所示:
1 def fun4(*name): 2 print(type(name)) 3 print(name) 4 5 6 fun4((1, 2, 3))
字典传递,虽然经过元组能够传递多个参数,但若是须要经过键值来获取参数内容时,字典则更加方便,以下所示:
1 def fun5(a, b, **kwargs): 2 print(type(kwargs)) # <class 'dict'> 3 print(a, b, kwargs) 4 5 6 fun5(2, 3, name='Alan.hsiang', age=23)
参数传递注意事项:
业精于勤,荒于嬉;行成于思,毁于随!!!