python操作mysql进行封装,封装的好处我就不提了,以下是我做项目时的一个封装,大家可以根据实际需要进行自己的一个封装

我封装的内容:

1.数据库的配置文件

2.获取数据配置文件的地址

3.连接数据库的操作

4.操作mysql的语句

5.调用mysql的语句--执行

封装1:数据库配置文件

config中db_conf.ini

里面主要是一些mysql的配置文件

[mysqlconf]

host=127.0.0.1

port=3306

user=root

password=123456

db_name=数据库名

封装2:读取配置文件地址public_data.py

import os

# 整个项目的根目录绝对路劲

baseDir = os.path.dirname(os.path.dirname(__file__))

# 数据库配置你文件绝对路径

config_path = baseDir + "/config/db_config.ini"

print(config_path)

打印目录地址:

封装3:数据库的连接 config_handler.py

# -*- coding:utf-8 -*-

#@Time : 2020/6/14 11:01

#@Author: 张君

#@File : config_handler.py

from configparser import ConfigParser

from config.public_data import config_path

class ConfigParse(object):

def __init__(self):

pass

@classmethod

def get_db_config(cls):

#cls使用的类方法,cls就是指定本身

cls.cfp = ConfigParser()

cls.cfp.read(config_path)

host = cls.cfp.get("mysqlconf", "host")

port = cls.cfp.get("mysqlconf", "port")

user = cls.cfp.get("mysqlconf", "user")

password = cls.cfp.get("mysqlconf", "password")

db = cls.cfp.get("mysqlconf", "db_name")

return {"host":host, "port":port, "user":user, "password":password,"db":db}

if __name__ == '__main__':

cp=ConfigParse()

result=cp.get_db_config()

print(result)

封装4:sql语句的封装 db_handle.py

import datetime

import pymysql

from utils.config_handler import ConfigParse

class DB(object):

def __init__(self):

#获取mysql连接信息

self.db_conf = ConfigParse.get_db_config()

#获取连接对象

self.conn = pymysql.connect(

host = self.db_conf["host"],

port = int(self.db_conf["port"]),

user = self.db_conf["user"],

password = self.db_conf["password"],

database = self.db_conf["db"],

charset = "utf8"

)

#获取数据的游标

self.cur = self.conn.cursor()

def close_connect(self):

# 关闭数据连接

#提交,物理存储

self.conn.commit()

#游标关闭

self.cur.close()

#连接对象关闭

self.conn.close()

def get_api_list(self):

"""获取所有的对象数据"""

sqlStr = "select * from interface_api where status=1"

self.cur.execute(sqlStr)

data = self.cur.fetchall()

#转成一个list

apiList = list(data)

return apiList

def get_api_case(self, api_id):

"""获取某一条数据"""

sqlStr = "select * from interface_test_case where api_id=%s and status=1" %api_id

self.cur.execute(sqlStr)

api_case_list = list(self.cur.fetchall())

return api_case_list

def get_rely_data(self, api_id, case_id):

"""获取所有数据库中的某一条"""

sqlStr = "select data_store from interface_data_store where api_id=%s and case_id=%s" %(api_id, case_id)

self.cur.execute(sqlStr)

rely_data = eval(self.cur.fetchall()[0][0])

return rely_data

def write_check_result(self, case_id, errorInfo, res_data):

"""更新数据库表"""

sqlStr = "update interface_test_case set error_info=\"%s\", res_data=\"%s\" where id=%s" %(errorInfo, res_data, case_id)

self.cur.execute(sqlStr)

self.conn.commit()

def insert_dab(self):

sqlStr="INSERT INTO `interface_api` VALUES (4, '修改博文', 'http://39.106.41.11:8080/getBlogContent/', 'get', 'url','0', '2018-07-27 22:13:30')"

self.cur.execute(sqlStr)

def get_api_case(self, api_id):

"""获取表中id"""

sqlStr = "select * from interface_test_case where api_id=%s and status=1" % api_id

self.cur.execute(sqlStr)

api_case_list = list(self.cur.fetchall())

return api_case_list

def get_api_id(self, api_name):

"""获取表中id"""

sqlStr = "select api_id from interface_api where api_name='%s'" % api_name

self.cur.execute(sqlStr)

api_id = self.cur.fetchall()[0][0]

return api_id

def update_store_data(self, api_id, case_id, store_data):

sqlStr = "select data_store from interface_data_store where api_id=%s and case_id=%s" % (api_id, case_id)

self.cur.execute(sqlStr)

if self.cur.fetchall():

sqlStr = "update interface_data_store set data_store=\"%s\" where api_id=%s and case_id=%s" % (

store_data, api_id, case_id)

print(sqlStr)

self.cur.execute(sqlStr)

self.conn.commit()

else:

sqlStr = "insert into interface_data_store values(%s, %s, \"%s\", '%s')" % (

api_id, case_id, store_data, datetime.now())

self.cur.execute(sqlStr)

self.conn.commit()

if __name__ == '__main__':

db=DB()

print(db.get_api_list())

print(db.get_api_case(1))

# print(db.get_rely_data(1,1))

#print(db.insert_dab())

使用ing,我新建了一个test.py文件

from utils.db_handler import DB

from action.get_rely import GetRely

from utils.HttpClient import HttpClient

def main():

#连接数据库,获取连接实例对象

db=DB()

#从数据库中获取需要执行的api执行集合

api_list=db.get_api_list()

print(api_list)

main()

至此一整套封装,与使用就完成了,为什么要分为几个文件夹,我遵循的一个原则, 使用、配置、公共方法是用不的文件夹整理,其实最终也就是你使用怎么方便,维护比较好,就怎么用

python mysql操作封装库_python封装mysq操作,进行数据库的增删改相关推荐

  1. python操作windows库_python大佬养成计划----win下对数据库的操作

    数据库 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. win系统安装mysql,详见链接描述 数据库常见命令 mysql ...

  2. python操作mysql数据库(增、删、改、查)_python对 MySQL 数据库进行增删改查的脚本...

    # -*- coding: utf-8 -*- import pymysql import xlrd # import codecs #连接数据库 conn = pymysql.connect(hos ...

  3. 【接口测试】Day5-使用pymysql库对mysql数据库进行增删改查操作

    目录 今日目标 一.数据库介绍 二.数据库基本操作 1.安装 2.操作流程(重点) 1. 创建连接 2. 获取游标 3. 执行sql 4. 关闭游标 5. 关闭连接 3.数据准备 4.数据库基本操作 ...

  4. 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)...

    最近看老罗的视频,跟着完成了利用Java操作MySQL数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...

  5. mysql封装 javabean,利用Java针对MySql封装的jdbc框架类JdbcUtils完整实现(包含增删改查、JavaBean反射原理,附源码)...

    最近看老罗的视频,跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...

  6. java mysql jdbc 封装_利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)...

    近期看老罗的视频,跟着完毕了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完毕对数据库的增删改查.当中查询这块,包含普通的查询和利用反射完毕的查询,主要包含以下几个函数接口 ...

  7. MySQL——数据库的增删改操作

    数据库的增删改操作 数据库的增操作 数据库的增操作主要涉及数据库的增加.数据表的增加.表记录增加以及表字段增加等.数据库的增加非常简单,就是新创建一个数据库:表记录的增加指的就是新增表的数据行,可以是 ...

  8. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)Shell脚本与MySQL数据库交互(增删改查)# 环境准备:安装mariadb 数据库 [root ...

  9. 封装对MongoDB数据库的增删改查访问方法(基于MongoDB官方发布的C#驱动)

    本文利用MongoDB官方发布的C#驱动,封装了对MongoDB数据库的增删改查访问方法. 先用官方提供的mongo-csharp-driver ,当前版本为1.7.0.4714 编写数据库访问帮助类 ...

最新文章

  1. 172. 阶乘后的零
  2. MySQL 实战 定时备份数据库
  3. 分布式技术追踪 2017年第十五期
  4. 公司正式宣布创业失败!
  5. Spring 事务core 模块-元数据metaData 模块
  6. python发红包问题_一个关于红包的问题引发的python算法初体验
  7. 辽宁活跃ip段_有泰国女排影子!激情辽宁女排,打出快乐排球,输了比赛赢了球迷...
  8. intellij idea 如何将普通项目转换为maven项目
  9. mysql安装版安装
  10. codova添加android慢_从 0 开始学 Linux 内核之 android 内核栈溢出 ROP 利用
  11. Specified key was too long; max key length is 767 bytes解决方案
  12. QT 实现采集即时音频信号并发送至另一台电脑播放
  13. 终端IO--unix环境高级编程读书笔记
  14. python爬取加密qq空间_用python爬取qq空间说说
  15. 如何自己搭建钓鱼网站检测系统
  16. Git在同一台电脑上连接多个仓库
  17. 一百元的钞票能拍卖出多少钱?
  18. android 横屏竖屏设置,Android中强制设置横屏与竖屏,与横竖屏生命周期的设置
  19. HTTP中常见的状态码代表的意思比如202、303、404、505、访问网络时有时经常见的状态,也是面试题中关于HTTP经常出现的
  20. .sh脚本文件shebang行引发的syntax error:“(“ unexpected

热门文章

  1. RobotFramework自动化测试框架的基础关键字(五)
  2. Maven配置项目依赖使用本地仓库的方法汇总
  3. jQuery 获取页面元素的属性值
  4. 失败,因为你其实太过傲慢
  5. 推荐Linux内核书籍
  6. 动画讲解C语言的指针,从未如此简单
  7. 有意思的BAT CMD if while循环 整型自增
  8. c语言程序设计顺序结构题目,C语言编程 顺序结构编程练习题目
  9. centos查看网络速率_CentOS 7查看网络带宽使用情况
  10. Struts2_1_基础案例_配置文件详解_动作类