• 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)
    
    
    

      

     
  • 相关阅读:
    [No0000131]WCF压缩传输方案整理
    [No0000128]SQL纵表与横表互转
    [No0000127]WCF安全体系netTCPBinding绑定
    [No0000126]SSL/TLS原理详解与WCF中的WS-Security
    [No0000125]WCF安全体系
    [No0000124]WPF 扩展控件Behavior的几种方式
    [No0000123]WPF DataGrid Columns Visibility的绑定
    [No0000BB]ReSharper操作指南4/16-配置ReSharper代码快修与导航
    [No0000122]Donet 中间语言,反编译 .net IL 指令速查
    [No0000B2]ReSharper操作指南3/16-配置ReSharper与代码校错
  • 原文地址:https://www.cnblogs.com/fengyiru6369/p/7205587.html
Copyright © 2020-2023  润新知