python學習筆記 十 完善資料庫操作

2022-09-15 20:42:14 字數 2682 閱讀 5055

1.cur = coon.cursor(cursor=pymysql.cursors.dictcursor)的用法

建立游標,指定cursor型別返回的是字典,如果不指定型別,返回的是元組型別資料

import flask,pymysql,hashlib,json,redis

def mydb(sql,port=3306,charset='

utf8'):

host,user,passwd,db='

118.24.3.40

','jxz

','123456

','jxz

'coon = pymysql.connect(user=user,host=host,port=port,passwd=passwd,db=db,charset=charset)

cur = coon.cursor(cursor=pymysql.cursors.dictcursor)#建立游標,指定cursor型別返回的是字典

cur.execute(sql)

if sql.strip()[:6].upper()=='

select':

res =cur.fetchall()

else

: coon.commit()

res='ok'

cur.close()

coon.close()

return

resprint(mydb(

'select * from users_info

' ))

指定游標的輸出型別為字典,輸出如下:

[, , ]

未指定游標輸出型別,輸出如下:(('

1', '

zhaoxian

', '

123456

'), ('

2', '

xiaohei

', '

e10adc3949ba59abbe56e057f20f883e

'), ('

3', '

lily

', '

ab56b4d92b40713acc5af89985d4b786

'))

2.cur.fetchone()與cur.fetchall(),cur.fetchmany()的區別

cur.fetchone()#獲取到這個sql執行的一條結果,它返回就只是一條資料cur.fetchall()#獲取到這個sql執行的全部結果,它把資料庫表裡面的每一行資料放到乙個list裡面cur.fetchmany(5)#能傳入乙個數,指定返回多少條資料,如上就是指定返回5條資料

如果sql語句執行的結果是多條資料的時候,那就用fetchall()

如果你能確定sql執行的結果就只有一條,那麼就用fetchone()

3.cur.description可以動態獲取到資料庫中表的字段

import flask,pymysql,hashlib,json,redis

def mydb(sql,port=3306,charset='

utf8'):

host,user,passwd,db='

118.24.3.40

','jxz

','123456

','jxz

'coon = pymysql.connect(user=user,host=host,port=port,passwd=passwd,db=db,charset=charset)

cur =coon.cursor()#建立游標,指定cursor型別返回的是字典

cur.execute(sql)

if sql.strip()[:6].upper()=='

select':

fields =#print(cur.description)輸出為:(('id', 253, none, 40, 40, 0, true), ('username', 253, none, 40, 40, 0, true), ('passwd', 253, none, 40, 40, 0, true))

for field in

cur.description: #迴圈cur.descriptin中的元素

0]) #取cur.descriptin中的每個元素是乙個元組,然後取第乙個元素新增到fields列表中

print(fields)

else

: coon.commit()

cur.close()

coon.close()

mydb(

'select * from users_info

' )

fields =

for field in

cur.description: #迴圈cur.descriptin中的元素0])

這三行**可以用列表生成式代替,使**更簡潔更有逼格,作用效果是完全一樣的

fields = [field[0] for field in fields]

Python學習筆記(十)

mylab 專案實戰 1 在templates中乙個index.html我需要引入當前資料夾中的另乙個網頁,我直接在index的 中引入 html無效 最後,我在這個專案的主目錄下的urls中進行設定,可行 2 在呼叫網頁的時候,進行views設定,就已經把處理函式給選定了 直接在views,用re...

python學習筆記十

字典遍歷 集合函式 copy僅拷貝物件本身,而不對中的子物件進行拷貝,故對子物件進行修改也會隨著修改。dict1 dict2 dict1 dict3 dict1.copy dict1 user root dict1 num remove 1 print dict1 print dict2 print...

Python學習筆記(十) Python文件

以mark lutz著的 python學習手冊 為教程,每天花1個小時左右時間學習,爭取兩周完成。寫在前面的話 2013 7 20 20 00 學習筆記 1,python以 開始 注釋。python也支援可自動附加在物件上的文件,而且可以在執行時檢視。這類注釋是寫成字串,放在模組檔案 函式 類語句的...