首页 > 数据库 >第5课、mysql +pytest

第5课、mysql +pytest

时间:2023-02-08 22:46:36浏览次数:49  
标签:name self mysql db cursor pytest sql logger

ac

 

 

 

 

 

 

import pymysql

db = pymysql.connect(host='127.0.0.1',
                user='root',
                password='SPqaz132457/',
                port=3306,
                database='sql_store',
                # 返回结果转化为字典键字对形式
                cursorclass=pymysql.cursors.DictCursor
)
#
cursor = db.cursor()
sql1 = " SELECT *  FROM customers ORDER BY first_name"
cursor.execute(sql1)
# 返回结果集
result= cursor.fetchall()
print(result)
#取出last_name这一列
# for i in result:
#     print(i['last_name'])

#修改数据
sql2="UPDATE customers SET first_name ='SONG',last_name ='DADADA' WHERE customer_id = 5"
cursor.execute(sql2)
cursor.execute(sql1)
result2= cursor.fetchall()
# 提交修改
db.commit()
print(result2)

 

 

 

 

数据库模块封装:

详见代码块,ke13_api_project_2021_06包,视频可以从12课38分开始

1.数据库连接信息,在config目录的config.py中

import pymysql
from config.config import dbinfo
from nb_log import LogManager
from config.config import ROOT_PATH
import os
logpath = os.path.join(ROOT_PATH, "log")


logger = LogManager("ha").get_logger_and_add_handlers(
    log_filename="yoyo.log",log_path=logpath
)

'''
pip install PyMySQL==0.9.3
'''

# # 配置数据库相关信息
# dbinfo = {
#     "host": "127.0.0.1",
#     "user": "root",
#     "password": "SPqaz132457/",
#     "port": 3306}


class DbConnect(object):
    def __init__(self, db_cof, database=""):
        self.db_cof = db_cof
        logger.info("读取db配置:%s" % str(self.db_cof))
        # 打开数据库连接
        self.db = pymysql.connect(database=database,
                                  cursorclass=pymysql.cursors.DictCursor,
                                  **db_cof)

        # 使用cursor()方法获取操作游标
        self.cursor = self.db.cursor()
        logger.debug("创建游标")

    def select(self, sql):
        # SQL 查询语句
        # sql = "SELECT * FROM EMPLOYEE \
        #        WHERE INCOME > %s" % (1000)
        logger.info("执行查询SQL:%s" % sql)
        self.cursor.execute(sql)
        results = self.cursor.fetchall()
        logger.info("执行查询SQL结果:%s" % str(results))
        return results

    def execute(self, sql):
        # SQL 删除、提交、修改语句
        # sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
        logger.info("执行SQL:%s" % sql)
        try:
           self.cursor.execute(sql)  # 执行SQL语句
           self.db.commit()  # 提交修改
        except:
           # 发生错误时回滚
           self.db.rollback()

    def close(self):
        # 关闭连接
        self.db.close()

if __name__ == '__main__':
    db = DbConnect(dbinfo, database="sql_store")

    sql = " SELECT *  FROM customers ORDER BY first_name"
    a = db.select(sql)
    print(a)   # list of dict

    sql2 ="UPDATE customers SET first_name ='SONG',last_name ='DADADA2' WHERE customer_id = 1"
    db.execute(sql2)
    db.close()

ac

 

标签:name,self,mysql,db,cursor,pytest,sql,logger
From: https://www.cnblogs.com/pingzi66-ww/p/17103598.html

相关文章

  • mysql数据库修改密码的几种方法
    目录MYSQL修改用户密码updatesetgrantmysqladmin在日常使用mysql数据库的时候,我们有修改mysql数据库密码的需求。以下介绍四种修改mysql数据库密码的方法。MYSQL修改用......
  • 第4课、Pytest-logging日志模块
    日志模块详细介绍:https://www.jb51.net/article/214933.htm importloggingimporttimeimportosfromBase.basePathimportBasePathasBPfromBase.utilsimp......
  • Mysql5.7安装之yum安装方式_验证通过
    https://blog.csdn.net/qq_39840846/article/details/125843225 第一步:新建一个文件mkdirmysql进入到该文件夹cdmysql第二步下载mysql源安装包wgethttp://dev.mys......
  • Linux下MySQL的配置文件(my.cnf)的存放路径
    https://blog.csdn.net/yerenyuan_pku/article/details/109919451 my.cnf是MySQL启动时加载的配置文件,一般会放在MySQL的安装目录中,用户也可以放在其他目录中进行加载。......
  • 第2课、Pytest自定义前置后置-fixture简单应用
        test_pytest1.py:  运行的时候鼠标放在类上才能运行全部用例importpytestclassTestCase():deftest_case_01(self):num=1+1......
  • MySQL索引的基本理解
    之前一致以为索引就是简单的在原表的数据上加了一些编号,让查询更加快捷。后来发现里面还有更深的知识。索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第......
  • 官网查找mysql安装包
    通过浏览器输入官网url:www.mysql.com打开以后的样子  找到downloads进入  鼠标中键翻页找到社区下载(MySQLCommunity(GPL)Downloads»)进入  找到mys......
  • 浅析mysql报错:Error writing file '/tmp/MY4QWdUa' (Errcode: 28 - No space left on
    一、问题背景1、报错描述:今天执行sql时发现Node服务的日志报错:SequelizeDatabaseError:EE_WRITE:Errorwritingfile'/tmp/MY4QWdUa'(Errcode:28-Nospac......
  • mysql压缩表小记
    参考文档:https://www.163.com/dy/article/GI4CH5N305319P76.htmlhttps://learn.lianglianglee.com/专栏/MySQL实战宝典/06表压缩:不仅仅是空间压缩.mdhttps://blog.csd......
  • MySQL 定时备份数据库
    在操作数据过程中,可能会导致数据错误,甚至数据库奔溃,而有效的定时备份能很好地保护数据库。本篇文章主要讲述了几种方法进行 MySQL定时备份数据库。一.mysqldump命令备......