python+selenium之數據庫連接


首先要安裝Python和MySQL的連接工具

 

下載地址如下:

https://pypi.python.org/pypi/PyMySQL

https://github.com/PyMySQL/PyMySQL

 

腳本如下:

#coding = utf-8
import pymysql
import os
#連接數據庫
connection = pymysql.connect(host = 'localhost',user= 'root',password='123456',db='testonecard',port=3306,charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
# 通過cursor創建游標
cursor = connection.cursor()
# 創建sql 語句,並執行
sql = "update cert_card_consume SET real_payment_amount =300 where real_payment_amount =200"
cursor.execute(sql)
#提交sql
connection.commit()

 

注:

無論使用什么的工具或庫,都需要連接數據庫,

      host為數據庫的主機IP地址,

      port為MySQL的默認端口號,

      user為數據的用戶名,

      password為數據庫的登錄密碼,

      db為數據庫的名稱。

 charset:使用的字符集(一般是gb2312)
 cursor = db.cursor() 其實就是用來獲得python執行Mysql命令的方法,也就是
我們所說的操作游標

  cursor()方法創建數據庫游標。

  execute()方法執行SQL語句。

  commit()將數據庫的操作真正的提交到數據。

 



   接下來的操作就是數據庫的查詢了。

  fetchone() 用於查詢單條數據。

  fetchall() 用於查詢多條數據。

  close() 最后不要忘記了關閉數據連接。

代碼如下:

#coding = utf-8
import pymysql
import os
#連接數據庫
connection = pymysql.connect(host = 'localhost',user= 'root',password='123456',db='testonecard',
port=3306,charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
# 通過cursor創建游標 
cursor = connection.cursor()
# 創建sql 語句,並執行
sql = "select consume_seq_no,real_payment_amount from cert_card_consume where card_id = '1292687' "
cursor.execute(sql)
#查詢數據庫單條數據
result = cursor.fetchone()
print(result)

print("-----華麗分割線---------")

sql1 ="select consume_seq_no,real_payment_amount from cert_card_consume where card_id = '1292687' "
cursor.execute(sql1)
#查詢數據庫多條數據
result1 = cursor.fetchall()
for data in result1:
print(data)

#提交sql 
connection.commit()

#關閉數據連接
connection.close()

  

 難點處理1:通過游標查詢出第一條記錄的卡號,然后再通過sql查詢出該卡號范圍的卡號總數

# 通過cursor創建游標
cursor = connection.cursor()
sql1 = "select card_no from base_card where apply_status=1 and card_status=1 ORDER BY  import_time asc  "
cursor.execute(sql1)
# 查詢數據庫多條數據 注:查詢的結果為字典數據類型集合
result = cursor.fetchone()
card_no1 = result.get("card_no")
print(card_no1)
card_no2 =str(int(card_no1)+100)
print(card_no2)
#查詢出對應的卡號數量
sql2 = "select count(card_no) from base_card where apply_status=1 and card_status=1 and card_no BETWEEN 'card_no1'  and 'card_no2'"
cursor.execute(sql2)
result = cursor.fetchone()
num = result.get("count(card_no)")
print(num)
注:引用卡號card_no1和card_no2變量時,應該加上引號  

難點處理2:同時查詢出多條數據時,通過for循環會是一個字典,要是要獲取列表中的數據通過執行一下語句:

 
        
for data in result1:
    print(data)
    test = data.get("card_no")
    print(test)
 
        

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM