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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

python pymysql_python使用pymysql实现操作mysql

發布時間:2025/3/11 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python pymysql_python使用pymysql实现操作mysql 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

pymsql是Python中操作MySQL的模塊,其使用方法和MySQLdb幾乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。

適用環境

python版本 >=2.6或3.3

mysql版本>=4.1

安裝

可以使用pip安裝也可以手動下載安裝。

使用pip安裝,在命令行執行如下命令:

pip install PyMySQL

其中的X.X是版本(目前可以獲取的最新版本是0.6.6)。

下載后解壓壓縮包。在命令行中進入解壓后的目錄,執行如下的指令:

python setup.py install

建議使用pip安裝。

使用示例

連接數據庫如下:

1

2

3

4

5

6

7

8

9

10

11

import pymysql.cursors

# Connect to the database

connection= pymysql.connect(host='127.0.0.1',

port=3306,

user='root',

password='zhyea.com',

db='employees',

charset='utf8mb4',

cursorclass=pymysql.cursors.DictCursor)

也可以使用字典進行連接參數的管理,我覺得這樣子更優雅一些:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

import pymysql.cursors

config= {

'host':'127.0.0.1',

'port':3306,

'user':'root',

'password':'zhyea.com',

'db':'employees',

'charset':'utf8mb4',

'cursorclass':pymysql.cursors.DictCursor,

}

# Connect to the database

connection= pymysql.connect(**config)

插入數據:

執行sql語句前需要獲取cursor,因為配置默認自動提交,故在執行sql語句后需要主動commit,最后不要忘記關閉連接:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

from datetimeimport date, datetime, timedelta

import pymysql.cursors

#連接配置信息

config= {

'host':'127.0.0.1',

'port':3306,

'user':'root',

'password':'zhyea.com',

'db':'employees',

'charset':'utf8mb4',

'cursorclass':pymysql.cursors.DictCursor,

}

# 創建連接

connection= pymysql.connect(**config)

# 獲取明天的時間

tomorrow= datetime.now().date()+ timedelta(days=1)

# 執行sql語句

try:

with connection.cursor() as cursor:

# 執行sql語句,插入記錄

sql= 'INSERT INTO employees (first_name, last_name, hire_date, gender, birth_date) VALUES (%s, %s, %s, %s, %s)'

cursor.execute(sql, ('Robin','Zhyea', tomorrow,'M', date(1989,6,14)));

# 沒有設置默認自動提交,需要主動提交,以保存所執行的語句

connection.commit()

finally:

connection.close();

執行查詢:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

import datetime

import pymysql.cursors

#連接配置信息

config= {

'host':'127.0.0.1',

'port':3306,

'user':'root',

'password':'zhyea.com',

'db':'employees',

'charset':'utf8mb4',

'cursorclass':pymysql.cursors.DictCursor,

}

# 創建連接

connection= pymysql.connect(**config)

# 獲取雇傭日期

hire_start= datetime.date(1999,1,1)

hire_end= datetime.date(2016,12,31)

# 執行sql語句

try:

with connection.cursor() as cursor:

# 執行sql語句,進行查詢

sql= 'SELECT first_name, last_name, hire_date FROM employees WHERE hire_date BETWEEN %s AND %s'

cursor.execute(sql, (hire_start, hire_end))

# 獲取查詢結果

result= cursor.fetchone()

print(result)

# 沒有設置默認自動提交,需要主動提交,以保存所執行的語句

connection.commit()

finally:

connection.close();

這里的查詢支取了一條查詢結果,查詢結果以字典的形式返回:

從結果集中獲取指定數目的記錄,可以使用fetchmany方法:

result = cursor.fetchmany(2)

不過不建議這樣使用,最好在sql語句中設置查詢的記錄總數。

獲取全部結果集可以使用fetchall方法:

result = cursor.fetchall()

因為只有兩條記錄,所以上面提到的這兩種查詢方式查到的結果是一樣的:

[{'last_name': 'Vanderkelen', 'hire_date': datetime.date(2015, 8, 12), 'first_name': 'Geert'}, {'last_name': 'Zhyea', 'hire_date': datetime.date(2015, 8, 21), 'first_name': 'Robin'}]

在django中使用

在django中使用是我找這個的最初目的。目前同時支持python3.4、django1.8的數據庫backend并不好找。這個是我目前找到的最好用的。

設置DATABASES和官方推薦使用的MySQLdb的設置沒什么區別:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'mytest',

'USER': 'root',

'PASSWORD': 'zhyea.com',

'HOST': '127.0.0.1',

'PORT': '3306',

}

}

關鍵是這里:我們還需要在站點的__init__.py文件中添加如下的內容:

import pymysql

pymysql.install_as_MySQLdb()

最后給大家附上pymysql實現增刪改查的代碼,希望大家能夠喜歡

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

#!/usr/bin/python

#coding:gbk

import pymysql

from builtinsimport int

#將MysqlHelper的幾個函數寫出來

def connDB():#連接數據庫

conn=pymysql.connect(host="localhost",user="root",passwd="zx69728537",db="student");

cur=conn.cursor();

return (conn,cur);

def exeUpdate(conn,cur,sql):#更新或插入操作

sta=cur.execute(sql);

conn.commit();

return (sta);

def exeDelete(conn,cur,IDs):#刪除操作

sta=0;

for eachIDin IDs.split(' '):

sta+=cur.execute("delete from students where Id=%d"%(int(eachID)));

conn.commit();

return (sta);

def exeQuery(cur,sql):#查找操作

cur.execute(sql);

return (cur);

def connClose(conn,cur):#關閉連接,釋放資源

cur.close();

conn.close();

result=True;

print("請選擇以上四個操作:1、修改記錄,2、增加記錄,3、查詢記錄,4、刪除記錄.(按q為退出)");

conn,cur=connDB();

number=input();

while(result):

if(number=='q'):

print("結束操作");

break;

elif(int(number)==1):

sql=input("請輸入更新語句:");

try:

exeUpdate(conn, cur, sql);

print("更新成功");

except Exception:

print("更新失敗");

raise;

elif(int(number)==2):

sql=input("請輸入新增語句:");

try:

exeUpdate(conn, cur, sql);

print("新增成功");

except Exception:

print("新增失敗");

raise;

elif(int(number)==3):

sql=input("請輸入查詢語句:");

try:

cur=exeQuery(cur, sql);

for itemin cur:

print("Id="+str(item[0])+" name="+item[1]);

except Exception:

print("查詢出錯");

raise;

elif(int(number)==4):

Ids=input("請輸入Id,并用空格隔開");

try:

exeDelete(conn, cur, Ids);

print("刪除成功");

except Exception:

print("刪除失敗");

raise;

else:

print("非法輸入,將結束操作!");

result=False;

break;

print("請選擇以上四個操作:1、修改記錄,2、增加記錄,3、查詢記錄,4、刪除記錄.(按q為退出)");

number=input("請選擇操作");

總結

以上是生活随笔為你收集整理的python pymysql_python使用pymysql实现操作mysql的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美熟妇另类久久久久久不卡 | 老司机深夜视频 | 激情综合在线 | 欧美亚洲国产精品 | 中文字幕一区二区三区门四区五区 | 亚洲第三区 | 小柔好湿好紧太爽了国产网址 | 综合久久久久久久 | 蜜桃成熟时李丽珍在线观看 | 在线日韩亚洲 | 色老头一区 | 黄色午夜视频 | 日婷婷| 女人18毛片一区二区三区 | 亚洲熟妇一区二区 | 亚洲欧美一级 | 天天干天天操心 | 国产大奶在线观看 | 国产a免费视频 | 成年人免费网 | 91欧美视频| 国产午夜精品在线观看 | 免费成人深夜夜视频 | 国产区在线视频 | 久久久久久久久久福利 | www.黄色. | 男人日女人免费视频 | 日本做爰高潮又黄又爽 | 国产资源在线观看 | 99国产精品久久久久久久久久久 | 亚洲区自拍| 国产精品电影网站 | 又黄又爽的视频在线观看 | 人人草人人看 | 日本三级播放 | 婷婷五月综合缴情在线视频 | 国产性猛交普通话对白 | av片毛片| 国产伦精品视频一区二区三区 | 午夜影院操 | 日韩免费网站 | 欧美午夜性 | 久久免费福利视频 | 在线你懂得 | www.色午夜.com| 久久九九99 | 草视频在线 | 国产一区二区三区www | 亚洲欧美一区二区三区在线观看 | 日韩欧美在线一区二区三区 | 北岛玲av | 国产成人一区 | 337p日本欧洲亚洲鲁鲁 | 欧美丰满老妇性猛交 | av这里只有精品 | 自拍偷拍日韩 | 免费黄视频网站 | 亚洲精品2区 | 人妻少妇偷人精品久久久任期 | 久久激情片 | 在线观看免费av网站 | 午夜在线一区二区三区 | 99精品毛片 | 亚洲国产一二三 | 欧美乱欲视频 | 大奶毛片 | 中文字字幕在线 | 成人在线播放av | 亚洲爱| 一本色道久久综合亚洲 | 少妇熟女一区二区三区 | 国产精品美女久久久免费 | www.色国产 | 懂色av一区二区三区在线播放 | 国产精品三级在线 | 欧美乱大交xxxxx潮喷 | 在线看片亚洲 | 奇米久久久| 成人综合婷婷国产精品久久 | 亚洲一区在线电影 | 日韩高清欧美 | 丰满大乳奶做爰ⅹxx视频 | 亚洲综合p | 亚洲第一大网站 | 精品视频在线观看一区二区 | 大尺码肥胖女系列av | 日韩激情视频 | 一区二区日本视频 | 波多野吉衣一区二区 | 亚洲欧美国产日韩精品 | 91在线看黄 | 国产视频一区二区在线观看 | 三级黄色网络 | 亚洲性欧美色 | 国产伦精品一区二区三区在线观看 | 欧洲性生活视频 | 色悠久久综合 | 国产东北女人做受av | 精品久久五月天 |