日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python搭配什么数据库_python 连接操作数据库(一)

發布時間:2024/7/19 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python搭配什么数据库_python 连接操作数据库(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、下面我們所說的就是連接mysql的應用:

1、其實在python中連接操作mysql的模塊有多個,在這里我只給大家演示pymysql這一個模塊(其實我是感覺它比較好用而已):

pymysql是第三方的一個模塊,需要我們自己安裝,在這里順便給大家普及一下安裝第三方模塊的知識;首先,如果我們在windows上安裝的話,需要先安裝python解釋器,然后里面自帶

了pip模塊(我們安裝第三方模塊,都是需要這個命令去安裝的),配置完環境變量之后我們就可以直接在cmd命令行中執行要安裝的模塊了,如下:

我這里是已經安裝過的,所以提示讓我更新,在你安裝過pymysql模塊之后,就可以直接去調用了,下面我們來看一個小例子,根據這個小例子來進行說明:

1 importpymysql2

3 #鏈接數據庫,并創建游標

4 conn = pymysql.connect(host='192.168.163.131',port=3306,user='mysql_test',passwd='123456',db='pymysql')5 cur =conn.cursor()6

7 #cur.execute('create table t1(id INT(10),name VARCHAR(20))ENGINE=InnoDB DEFAULT CHARSET=utf8')

8

9 #cur.execute('insert into t1(id,name) VALUES (1001,"madaqiang")')

10 count = cur.executemany('insert into t1(id,name ) VALUES (%s,%s)',[(1002,'eric'),(1003,'tom')])11

12 conn.commit()13

14 cur.close()15 conn.close()

解釋說明:

首先使用pymysql的connect方法去連接數據庫,里面的參數我相信大家都能看懂,那個cur是創建的一個游標(執行sql,都是使用這個游標去執行的);下面就開始執行sql語句

注釋的那兩行,分別是創建一個t1表,然后往里面插入一條數據,下面那個executemany是可以一次插入多條記錄,每個記錄是一個元祖,count是受影響的行數;最后你需要執行

commit()方法,不然,你做的這些都是白費的,然后把游標和連接都關閉。

簡單的連接就是這樣的簡單。下面我們再來看看游標的問題,相信很多的人一開始的時候跟我一樣,對這個游標理解不是那么準確,下面我們來兩段代碼,你就明白了:

1 conn = pymysql.connect(host='192.168.163.131',port=3306,user='mysql_test',passwd='123456',db='pymysql')2 cur =conn.cursor()3 cur.execute('select * from t1')4

5 #cur.scroll(1,mode='relative')

6

7 #取出第一條數據

8 line =cur.fetchone()9 print(line)10 #取出所有的數據

11 all_line =cur.fetchall()12 print(all_line)13 conn.commit()14

15 cur.close()16 conn.close()

首先我們先來看這段代碼,其中新增的兩條已經在代碼中標注了,就是取出第一條數據和所有的數據,但是我們看下面的輸出結果,你就會發現一些問題了:

1 (1001, 'madaqiang')2 ((1002, 'eric'), (1003, 'tom'))

在你輸出第一條數據之后,游標就游到了第二條數據上,你再輸出所有的數據,其實就是從第二行開始輸出的;如果你不想輸出1002這條記錄,你可以在第九行的下面加一條這樣的語句:

cur.scroll(1,mode='relative'),這樣就不會輸出了,如果你感覺輸出的元祖,以后調用的話會比較麻煩,我們可以設置成輸出格式為字典的格式,這樣不管是看還是調用都比較方便了:

其實我們只需要在創建游標的下面加上cur = conn.cursor(cursor=pymysql.cursors.DictCursor),這樣一行代碼就OK了,還是輸出一下結果吧,不然總感覺少點什么:

1 #鏈接數據庫,并創建游標

2 conn = pymysql.connect(host='192.168.163.131',port=3306,user='mysql_test',passwd='123456',db='pymysql')3 cur =conn.cursor()4 #把輸出的格式轉換成

5 cur = conn.cursor(cursor=pymysql.cursors.DictCursor)6

7 cur.execute('select * from t1')8

9

10 #取出第一條數據

11 line =cur.fetchone()12 print(line)13

14 conn.commit()15

16 cur.close()17 conn.close(

=====================輸出結果=======================

{'name': 'madaqiang', 'id': 1001}

2、下面我們再來看看一個ORM框架(SQLAlchemy),

SQLAlchemy是Python世界中最廣泛使用的ORM工具之一,它采用了類似與Java里Hibernate的數據映射模型,而不是其他ORM框架采用的Active Record模型,SQLAlchemy分為兩部分,一個是常用的ORM對象映射,另一個是核心的SQL expression。第一個很好理解,純粹的ORM,后面這個不是ORM,而是DBAPI的封裝,通過一些sql表達式來避免了直接寫sql語句。簡單的概括一下就是:將對象轉換成SQL,然后使用數據API執行SQL并獲取執行結果。

下面來一下看一下SQLAlchemy的ORM的實現機制,內部封裝了些什么:

上圖中的Dialect用于和數據API進行交流,根據配置文件的不同調用不同的數據庫API,從而實現對數據庫的操作,如:

mysql+pymysql://:@/[?]

總結

以上是生活随笔為你收集整理的python搭配什么数据库_python 连接操作数据库(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。