ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2021-07-18 16:31:05  阅读:247  来源: 互联网

标签:__ 语句 execute cur python 数据库 ddt result user


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有