python对数据库与ddt的配合使用及详细讲解
作者:互联网
1、python连接数据库基础操作及详细讲解
# -*- -*- -*- -*- -*- -*- -*- -*-
# -*- coding: utf-8 -*-
# @Time : 2021/0717
# @File : mysql_connect.py
# -*- -*- -*- -*- -*- -*- -*- -*-
# pymysql 需要安装 :pip install pymysql
import pymysql
# 1、连接数据库,将连接信息保存在 con 里面【变量名自定义,无要求】
con = pymysql.connect(host="127.0.0.1",port=3306,user="root",password="123456",database="nsw_test")
# 2、操作数据库:创建并使用 curson 游标,可以执行SQL语句,获取数据等
cur = con.cursor()
# 准备好需要的 增删改 的SQL语句
sql_2 = "update user_table set username='wanglei' where username='zhangsan'"
sql_3 = "insert into user_table (username,password) values ('zhuzhu','123456')"
sql_4 = "delete from user_table where username='zhangsan'"
# 调用执行SQL语句: .execute()方法
cur.execute(sql_2)
# 数据库增删改的语句需要 commit 一下
cur.execute("commit")
# 准备好需要的查询SQL语句
sql_1 = "select user_id,user_name from user_table"
# 调用执行SQL语句: .execute()方法
cur.execute(sql_1)
# 结果显示 fetchall fetchone fetchmany(数字) 查询指定条数
result_1 = cur.fetchone() # 查询一条数据
result_2 = cur.fetchall() # 查询所有数据
result_3 = cur.fetchmany(2) # 查询指定行数的数据
print("查询的一条数据为:{}".format(result_1))
print("查询的所有数据为:{}".format(result_2))
print("查询的指定两条数据为:{}".format(result_3))
# 3、关闭数据库连接
con.close()
2、python针对数据库增删改查的函数封装
import pymysql
import unittest
class My_db:
# 初始化函数,只要调用了My_db这个类,就会调用init函数
def __init__(self):
try:
self.con = pymysql.connect(host="127.0.0.1",port=3306,user="root",password="123456",database="nsw_test")
except AssertionError as e:
print("初始化连接错误是{}".format(e))
# 异常处理结束后,抛出异常
def select_query(self,query): #查询语句
try:
cur=self.con.cursor()
# 调用执行SQL语句: .execute()方法
cur.execute(query)
result = cur.fetchall()
return result
except AssertionError as e:
print("执行查询语句失败{}".format(e))
# 异常处理结束后,抛出异常
def zsgc(self):
try:
cur = self.con.cursor()
# 调用执行SQL语句: .execute()方法
cur.execute(query)
result = cur.fetchall()
result.execute("commit")
return result
except AssertionError as e:
print("执行查询语句失败{}".format(e))
# 异常处理结束后,抛出异常
if __name__ == '__main__':
unittest.main()
3、数据库与ddt的配合使用
import requests
import unittest
from ddt import ddt, data, unpack
from tools.mydb import My_db
@ddt
class Nsw(unittest.TestCase):
@ddt(*My_db.select_query("select account,password from sys_user_backstage")) #星号代表不定长度
@unpack
def test_login(self, account, password):
url = "http://xsxydoctorapi.ashermed.cn/api/v1/UserInfo/LoginBackstage"
params = {
"account": account,
"password": password
}
respose = requests.get(url, params=params)
print(respose.json())
if __name__ == "__main__":
unittest.main()
标签:__,语句,execute,cur,python,数据库,ddt,result,user 来源: https://blog.csdn.net/weixin_47928937/article/details/118864707