實踐1:
基本操作:
『』』建立connection 獲取cursor
執行查詢 執行命令 獲取資料 處理資料
關閉cursor 關閉connection
『』』
import pymysql
# 1.連線mysql資料庫
conn = pymysql.connect(host=
'127.0.0.1'
,port=
3306
,user=
'root'
,passwd=
'root'
,db=
'mb'
,charset=
'utf8'
)# 傳入一些引數 db database縮寫
# 2.獲取cursor 游標物件 通過連線物件獲取
cs = conn.cursor(
)# 3. 通過游標物件執行sql
r = cs.execute(
'select * from goods;'
)#有返回值,且為受影響記錄的行數
print
(r)# 4.獲取資料
print
(cs.fetchone())
#獲取第一條資料
print
(cs.fetchone())
# 游標是會跟著動的 顯示第2條資料
# 4.1 獲取多條資料
print
(cs.fetchmany(5)
)#預設是返回1條
#是乙個雙重元組 可以獲取多個
print
(cs.fetchall())
print
(cs.fetchone())
# 5.1 關閉游標
cs.close(
)# 5.2 關閉連線
conn.close(
)
實踐2:
已有goods表,在此基礎上完成查詢
「」"使用物件導向完成商品查詢
• 輸入1:查詢所有商品
• 輸入2:所有商品種類
• 輸入3:查詢所有品牌
• 輸入4:退出
• 輸入5:插入資料
「」"
import pymysql
classmb(
object):
def__init__
(self)
: self.conn = pymysql.connect(host=
'127.0.0.1'
, port=
3306
, user=
'root'
, passwd=
'root'
, db=
'mb'
, charset=
'utf8'
) self.cs = self.conn.cursor(
)def
run(self)
:while
true
: num = self.print_menu(
)#靜態方法也是物件的,所以加self
if num ==
'1':
self.show_all_goods(
)elif num ==
'2':
self.show_all_cates(
)elif num ==
'3':
self.show_all_brands(
)elif num ==
'4':
break
elif num ==
'5':
self.insert_data(
)else
:print
('輸入有誤'
)#靜態方法 可以省空間,在使用時不佔記憶體,因為例項方法在定義的時候不需要例項空間
@staticmethod
defprint_menu()
:print
('-------mb shop-----'
)print
('輸入1:查詢所有商品'
)print
('輸入2:所有商品種類'
)print
('輸入3:查詢所有品牌'
)print
('輸入4:退出'
)print
('輸入5:插入資料'
) num =
input
('請輸入 '
)return num
defshow_all_goods
(self)
: sql =
'select * from goods;'
# self.cs.execute(sql)
# res = self.cs.fetchall()
# for data in res:
# print(data)
#print(res)
#return res
self.execute_sql(sql)
defshow_all_cates
(self)
: sql =
'select * from goods_cates;'
self.execute_sql(sql)
defshow_all_brands
(self)
: sql =
'select brand_name from goods group by brand_name;'
self.execute_sql(sql)
definsert_data
(self)
: sql =
"insert into lcy (name) values ('mm');"
self.cs.execute(sql)
self.conn.commit(
)def
execute_sql
(self,sql)
: self.cs.execute(sql)
res = self.cs.fetchall(
)for data in res:
print
(data)
def__del__
(self)
: self.conn.close(
)def
main()
: mb = mb(
) mb.run(
)if __name__ ==
'__main__'
: main(
)
Python正則之再學習與實踐
昨天做網頁爬取的時候,感覺自己對正則不熟悉的很,故今天再花上午時間認真整理下,不可懈怠。1.常見正規表示式符號 1 literal 匹配文字字串的字面值literal 2 re1 re2 匹配正規表示式re1或者re2 foo bar 3 匹配任何字元 除 n b.b 4 匹配字串的起始部分 dea...
python實踐之json檔案讀取與修改某個值
最近做的工作中用到了python讀取與修改json檔案,在處理json檔案時將物件看做字典 將陣列看做列表,json就是物件中巢狀列表再巢狀物件的乙個可遞迴的資料結構,處理起來比較麻煩,最初頭疼,頭疼了一會就想轍了,最終當然是想出轍來了,於是有了這篇文章。總共的步驟有3步 其中用到的知識點是 巢狀型...
SVD演算法與python實踐
svd演算法在氣象的分析中經常有用到,主要是用來比較兩個場的相關結構關係,做一下說一下該演算法的自我體會。首先作為引入,首先要提到之前將到的eof和pca的分解方法。eof或pca主要計算步驟是矩陣的特徵值和特徵向量的計算一樣 eof裡面是將m個格點或者是pca裡面m個成分的協方差矩陣進行特徵值分解...