数据库
首页 > 数据库> > python对数据库与ddt的配合使用及详细讲解

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