首先要安装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. [hiho1578]Visiting Peking University

    题意:签到题,不叙述了 解题关键:模拟即可. #include<bits/stdc++.h> #define inf 0x3f3f3f3f using namespace std; typ ...

  2. c++控制台 对齐 域宽

    包含在头文件  iomanip 设置对齐: cout<<setiosflags(ios::xxx); xxx内填参数 left左对齐 right右对齐 setiosflags还有其他选项, ...

  3. 使用Axis2方式发布webService的三种方式

    1.Axis2的下载和安装 首先可以下载如下两个zip包:axis2-1.6.1-bin.zipaxis2-1.6.1-war.zip其中 axis2-1.6.1-bin.zip文件中包含了Axis2 ...

  4. zoj2901【DP·二进制优化】

    题意: 要排一个L长度的序列,当 j 放在 i 后面的时候会增加v[ i ][ j ]的值,求构成L长度序列的最大值. 思路: 可以想到预处理任意两点<i,j>的最大值是多少,然后题目还有 ...

  5. centos7及以上安装git服务

    检查git是否安装或者是版本 whereis git等命令来检查是否已经安装了git版本的 git --version检测到我的环境自带的git版本 已安装但不是想要的版本需要卸载 yum remov ...

  6. 2014-10-22 NOIP模拟赛

    1 1 .传教士 (bishop) 问题描述:panzhili 王国的疆土恰好是一个矩形,为了管理方便,国王 jjs 将整个疆土划分成 N*M 块大小相同的区域.由于 jjs 希望他的子民也能信教爱教 ...

  7. [Xcode 实际操作]六、媒体与动画-(14)使用SystemSoundId播放简短声音

    目录:[Swift]Xcode实际操作 本文将演示如何播放音频素材. 在项目名称上点击鼠标右键,弹出右键菜单, 选择[Add Files to "DemoApp"],往项目中导入文 ...

  8. 通过node.js读取html页面及其页面中引入的css样式

    Node 是什么? Node 是一个基于Chrome V8 引擎的JavaScript 运行环境. Node 不是一种独立的语言.Node不是 JavaScript 框架, Node是一个除了浏览器之 ...

  9. python爬虫——web前端基础(2)

    图像标记------->>>> <img>图像标记,用来在网页中显示图像.使用方法为:<img src="路径/文件名.图片格式"  wi ...

  10. 线程组之间的JMeter传递变量

    在这个JMeter教程中,我们将了解如何在线程组之间共享和传递变量. 在开发高级JMeter脚本时,很可能您将拥有多个线程组.每个线程组将执行不同的请求. 一个很好的例子就是我们需要使用Bearer ...