mysql安装:

Win10安装MySQL5.7(图文详解)_51CTO博客_win10安装mysql5.7

下载navicat

若连接mysql报错:

关于连接MySQL 8.0.11 出现2059错误 (baidu.com)

或使用DBeaver连接mysql

 

创建数据库:

 创建表并插入数据:

CREATE TABLE `case` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '编号',
  `app` varchar(128) DEFAULT NULL COMMENT '业务应用',
  `module` varchar(128) DEFAULT NULL COMMENT '模块',
  `title` varchar(128) DEFAULT NULL COMMENT '用例名称',
  `method` varchar(128) DEFAULT NULL COMMENT 'Http提交方法',
  `url` varchar(128) DEFAULT NULL COMMENT '接口',
  `run` varchar(32) DEFAULT NULL COMMENT '是否运行 yes/no',
  `headers` varchar(128) DEFAULT '{}' COMMENT '请求头',
  `pre_case_id` int(11) DEFAULT '-1' COMMENT '是否有前置用例id',
  `pre_fields` varchar(128) DEFAULT '[]' COMMENT '前置的字段, 获取请求结果的哪个字段,用于当前case的header还是body,双&name& 替代值',
  `request_body` varchar(128) DEFAULT '{}' COMMENT '请求内容,$XX用于替换',
  `except_result` varchar(1024) DEFAULT NULL COMMENT '预期结果',
  `assert_type` varchar(64) DEFAULT NULL COMMENT '断言类型, 判断状态码、data内容或数组长度',
  `pass` varchar(64) DEFAULT NULL COMMENT '是否通过,yes, no',
  `msg` varchar(128) DEFAULT NULL COMMENT '测试用例额外描述新',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `response` text COMMENT '实际结果',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


INSERT INTO `case` (`id`, `app`, `module`, `title`, `method`, `url`, `run`, `headers`, `pre_case_id`, `pre_fields`, `request_body`, `except_result`, `assert_type`, `pass`, `msg`, `update_time`, `response`)
VALUES
    (1,'小滴课堂','user','用户登录','post','/pub/api/v1/web/web_login','yes','{\"Content-Type\": \"application/x-www-form-urlencoded\"}',-1,'[]','{\"phone\": \"13113777555\", \"pwd\": \"1234567890\"}','0','code','True','模块:user,标题:用户登录,断言类型是:code,响应msg:None','2020-07-01 18:53:28',''),
    (4,'小滴课堂','order','用户订单列表','get','/user/api/v1/order/find_orders','yes','{\"token\":\"$token$\"}',1,'[{\"field\":\"token\",\"scope\":\"header\"}]','{}','0','data_json_array','True','模块:order,标题:用户订单列表,断言类型是:data_json_array,响应msg:None','2020-07-01 18:53:28',''),
    (5,'小滴课堂','video','首页视频卡片','get','/pub/api/v1/web/index_card','yes','{}',-1,'[]','{}','0','data_json_array','True','模块:video,标题:首页视频卡片,断言类型是:data_json_array,响应msg:None','2020-07-01 18:53:28',''),
    (6,'小滴课堂','user','用户个人信息','get','/pub/api/v1/web/user_info','yes','{\"token\":\"$token$\"}',1,'[{\"field\":\"token\",\"scope\":\"header\"}]','{}',NULL,'data_json','True','模块:user,标题:用户个人信息,断言类型是:data_json,响应msg:None','2020-07-01 18:53:29',''),
    (7,'小滴课堂','favorate','新增收藏','post','/user/api/v1/favorite/save','yes','{\"token\":\"$token$\", \"Content-Type\": \"application/x-www-form-urlencoded\"}',1,'[{\"field\":\"token\",\"scope\":\"header\"}]','{\"video_id\":59}','0','code','False','模块:favorate,标题:新增收藏,断言类型是:code,响应msg:视频不存在,非法参数','2020-07-01 18:53:29','{\'code\': -1, \'data\': None, \'msg\': \'视频不存在,非法参数\'}'),
    (8,'小滴课堂','category','分类列表','get','/pub/api/v1/web/all_category','yes','{}',-1,'[]','{}','0','data_json_array','True','模块:category,标题:分类列表,断言类型是:data_json_array,响应msg:None','2020-07-01 18:53:29',''),
    (9,'小滴课堂','video','视频详情','get','/pub/api/v1/web/video_detail','yes','{}',-1,'[]','{\"video_id\":53}','0','data_json','True','模块:video,标题:视频详情,断言类型是:data_json,响应msg:None','2020-07-01 18:53:29',''),
    (10,'小滴课堂','favorate','我的收藏','get','/user/api/v1/favorite/page','yes','{\"token\":\"$token$\"}',1,'[{\"field\":\"token\",\"scope\":\"header\"}]','{}','0','data_json_array','True','模块:favorate,标题:我的收藏,断言类型是:data_json_array,响应msg:None','2020-07-01 18:53:29','');

CREATE TABLE `config` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `app` varchar(128) DEFAULT NULL COMMENT '所属app',
  `dict_key` varchar(64) DEFAULT NULL COMMENT '字典key',
  `dict_value` varchar(256) DEFAULT NULL COMMENT '字典值',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;



INSERT INTO `config` (`id`, `app`, `dict_key`, `dict_value`)
VALUES
    (1,'小滴课堂','host','https://api.xdclass.net'),
    (2,'小滴课堂','mail_sender','waitforxy@126.com'),
    (3,'小滴课堂','mail_auth_code','HDPLOKWBQMVTVISG'),
    (4,'小滴课堂','mail_receivers','794666918@qq.com,waitforxy@126.com'),
    (5,'小滴课堂','mail_host','smtp.126.com');

 

 进入pycharm

 

 用python连接数据库

import pymysql

conn = pymysql.connect(host="127.0.0.1", user="root", password="password", database="xd_api_test")

# 使用 cursor 方法获取操作游标,得到一个可以执行sql语句,并且操作结果作为字典返回的游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

try:
    # 使用 execute 方法执行sql查询
    cursor.execute("select * from `case`")

    data = cursor.fetchall()

    print(data)
except Exception as e:
    print(e)

finally:
    # 关闭数据库连接
    conn.close()

 db_utils 数据库工具类封装

import pymysql
from warnings import filterwarnings
​
# 忽略Mysql告警信息
filterwarnings("ignore", category=pymysql.Warning)
​
​
class MysqlDb:
​
    def __init__(self):
        # 建立数据库连接
        self.conn = pymysql.connect("127.0.0.1", "root", "xdclass.net", "xd_api_test_demo")
​
        # 使用 cursor 方法获取操作游标,得到一个可以执行sql语句,并且操作结果作为字典返回的游标
        self.cur = self.conn.cursor(cursor=pymysql.cursors.DictCursor)
​
    def __del__(self):
        # 关闭游标
        self.cur.close()
        # 关闭连接
        self.conn.close()
​
    def query(self, sql, state="all"):
        """
        查询
        :param sql:
        :param state: all是默认查询全部
        :return:
        """
        self.cur.execute(sql)
​
        if state == "all":
            # 查询全部
            data = self.cur.fetchall()
        else:
            # 查询单条
            data = self.cur.fetchone()
        return data
​
    def execute(self, sql):
        """
        更新、删除、新增
        :param sql:
        :return:
        """
        try:
            # 使用execute操作sql
            rows = self.cur.execute(sql)
            # 提交事务
            self.conn.commit()
            return rows
        except Exception as e:
            print("数据库操作异常 {0}".format(e))
            self.conn.rollback()
​
​
if __name__ == '__main__':
    mydb = MysqlDb()
    #r = mydb.query("select * from `case`")
    r = mydb.execute("insert into `case` (`app`) values('xd')")
    print(r)