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)

  

 
原文地址:https://www.cnblogs.com/fengyiru6369/p/7205587.html