首先要安装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)

  

 

python+selenium之数据库连接的更多相关文章

  1. python selenium 测试环境的搭建及python mysql的连接

    又来一篇傻瓜教程啦,防止在学习的小伙伴们走弯路. 1.python 环境搭建 python官网:https://www.python.org/downloads/  选择最新版本python下载(如果 ...

  2. python+selenium 浏览器的问题

    以前用selenium调用firefox是不需要驱动的,最近安装了python3.52+最新的firefox 发现调不起来了 搜索以后发现Firefox 47+需要搞个firefox的驱动 gecko ...

  3. 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试

    Web登录测试是很常见的测试!手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动 ...

  4. Python + Selenium 实现登录Office 365

    最近捡起之前用的Python + Selenium实现工作中需要的登录Office 365功能.(吐槽:国内网络真是卡,登录Office 365实属不易.另外Selenium这样的网站都要墙,无法理解 ...

  5. python+selenium+Robot

    准备工作: 1.下载python2.7 http://python.org/getit/ 2.下载下载setuptools [python 的基础包工具] 可以帮助我们轻松的下载,构建,安装,升级,卸 ...

  6. python+selenium运行报错UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

    使用python+selenium运行自动化脚本时,打印某一段文字出现UnicodeEncodeError: 'ascii' codec can't encode characters in posi ...

  7. Functional testing - python, selenium and django

    Functional testing  - python selenium django - Source Code : from selenium import webdriverfrom sele ...

  8. python selenium自动化(二)自动化注册流程

    需求:使用python selenium来自动测试一个网站注册的流程. 假设这个网站的注册流程分为三步,需要提供比较多的信息: 在这个流程里面,需要用户填入信息.在下拉菜单中选择.选择单选的radio ...

  9. 使用python selenium进行自动化functional test

    Why Automation Testing 现在似乎大家都一致认同一个项目应该有足够多的测试来保证功能的正常运作,而且这些此处的‘测试’特指自动化测试:并且大多数人会认为如果还有哪个项目依然采用人工 ...

随机推荐

  1. Javascript Tip(!!)

    var a:var b=!!a; a默认是undefined.!a是true,!!a则是false,所以b的值是false,而不再是undefined,也非其它值,主要是为后续判断提供便利. !!一般 ...

  2. 由sock引起的感想

    昨天晚上和同学聊天,他问我你敲了这么多TCP,UDP.到底掌握了什么,我说我敲了很多例子.对这两个模式很清晰,顺便练习了多进程,线程等等. 他说,这样不太好.我一直只是拿这两个例子在练习,没有真正的在 ...

  3. linux抢占式调度

    为什么会发生调度?   因为cpu是有限的,而操作系统上的进程很多,所以操作系统需要平衡各个进程的运行时间 比如说有的进程运行时间已经很长了,已经占用了cpu很长时间了,这个时候操作系统要公平 就会换 ...

  4. 30个Python物联网小实验5:光线感应灯

    30个Python物联网小实验5:光线感应灯 光线传感器 光线变化执行函数 光线状态执行函数 30个Python物联网小实验5:光线感应灯 光线传感器 可以检测周围环境的亮度: 方向性较好,感知特定方 ...

  5. 搭建 Keras

    首先安装ipython ipython安装完成以后出现如下界面 然后安装theano 中途安装因为网络不好,造成超时而停止安装或者停滞不前,则按下Ctrl+C,停止此操作,或者关掉Anaconda P ...

  6. QMYSQL driver not loaded 的原理和解决办法

    转:http://blog.csdn.net/m15814478834/article/details/49902077 最近使用Qt遇到了"QMYSQL driver not loaded ...

  7. AI决策算法 之 GOAP (一)

    http://blog.csdn.net/lovethrain/article/details/67632033 本系列文章内容部分参考自:http://gamerboom.com/archives/ ...

  8. hdu1175 连连看

    连连看 HDU - 1175 “连连看”相信很多人都玩过.没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子.如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子 ...

  9. 「GXOI / GZOI2019」逼死强迫症——斐波那契+矩阵快速幂

    题目 [题目描述] ITX351 要铺一条 $2 \times N$ 的路,为此他购买了 $N$ 块 $2 \times 1$ 的方砖.可是其中一块砖在运送的过程中从中间裂开了,变成了两块 $1 \t ...

  10. 日期和时间-time时间模块

    时间的检测 #时间的检测 #导入时间模块 import time #返回当前时区与格林尼治所在时区的相差秒数(推荐) print(time.timezone) #输出结果:-28800 #返回当前时区 ...