在一些小的應用中,不免會用到數據庫,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)
參數傳遞注意事項:
業精於勤,荒於嬉;行成於思,毀於隨!!!