上一篇咱们已经把开发前的环境准备好了,还需要再做一点准备,你的账户信息是存在哪的呢,当然是存在数据库里的,咱们在去支付,扣钱的时候,肯定是从数据库里面操作的,去更新账户表里面的数据,所以咱们先要把数据库准备好,建好账户表,初始化几条账户信息,这样才能完整的把这个mock接口给完成。

这篇咱们就学习一下python怎么操作数据库,怎么执行sql,数据库使用sqlite,sqlite是一个跨平台开源的轻量级关系型数据库,不需要配置和安装直接就可以使用,sql语句和mysql、sqlserver、oracle等数据库都是一样的。

首先创建一个数据库,然后把账户表创建好,插入几条初始化数据,这里要用到navicat这个工具,或者其他sqlite可视化工具也可以,navicat安装包连接为 http://pan.baidu.com/s/1eRArvAM ,打开navicat后连接选择sqlite,然后选择新建SQLite3数据库,选择一个路径,输入数据库名字就把数据库创建好了,然后选择刚才新建的数据库,新建查询,执行sql就可以了,截图看下面。

创建数据库

执行sql

数据库的初始化准备已经做好了,下面就要建表和插入一些初始数据,要不然写接口的时候没数据测试了,支付肯定是操作的账户表,所以要创建账户表,里面得有账户id,用户id和用户的余额这三个字段,表结构也设计好了,然后出入一点数据,方便后面自测的时候使用,sql如下:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
-- 建表的sql
CREATE TABLE "accounts" (
"account_id"  INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"user_id"  INTEGER,
"money"  INTEGER
);
 
-- 插入数据的sql
INSERT INTO "accounts" ("user_id", "money") VALUES (1, 1111.98);
INSERT INTO "accounts" ("user_id", "money") VALUES (2, 981);
INSERT INTO "accounts" ("user_id", "money") VALUES (8, 8888);
INSERT INTO "accounts" ("user_id", "money") VALUES (9, 889211.1);
INSERT INTO "accounts" ("user_id", "money") VALUES (19, 1.2);

表结构也创建好了,数据也有了,下面就要使用python来操作数据库了,很简单,就是执行sql而已,代码如下,每行都加了注释

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#s.py
 
import sqlite3
#操作sqlite使用sqlite3模块,上面是导入这个模块
db = sqlite3.connect('my.db')
#连接数据库,指定数据库的路径,如果数据库的路径和这个python文件在同一个路径下的话,直接写名字就可以了
#如果不在同一个路径的话,就写数据库文件的绝对路径,例如这样的C:\Users\Sabri\Desktop\my.db
course = db.cursor()
#创建游标,就相当于创建一个数据库里面的工作人员去工作,从数据库里拿东西改东西一样
course.execute('select * from accounts;')
#游标执行sql语句,相当于让刚才创建的那个工作人员去执行sql语句
res = course.fetchall()
#获取sql执行结果,保存到res里面,res里面就是sql的执行结果
print(res)
#打印结果
course.close()
#关闭游标
db.commit()
#提交数据库事物,如果是update、insert、delete语句的话需要commit一下才可以生效,select不需要
db.close()
#做人有始有终,有打开就有关闭,关闭数据库连接

本篇咱们学习sqlite的简单使用以及python怎么操作SQLite,每天进步一点点,快去试试吧,下篇咱们正式开始写接口

测试开发系列之Python开发mock接口(二)的更多相关文章

  1. 测试开发系列之Python开发mock接口(一)

    什么是mock接口呢,举个栗子,你在一家电商公司,有查看商品.购物.支付.发 货.收获等等等一大堆功能,你是一个测试人员,测测测,测到支付功能的时候,你就要调用第三方支付接口了,真实支付,直接扣你支付 ...

  2. 测试开发系列之Python开发mock接口(三)

    于进入主题了,前面的准备工作都已经做好了,下面就开始写逻辑的代码了,代码我已经写好了,每行都加了注释,不明白的可以留言.   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 ...

  3. 《C#微信开发系列(3)-获取接口调用凭据》

    3.0获取接口调用凭据 ①接口说明 access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.开发者需要进行妥善保存.access_token的存储至少要保留 ...

  4. (一)react-native开发系列之Mac开发环境配置

    写在前面 在开始之前,先说下选择react-native的背景原因 最近一年来,公司为了节省开发成本,以及降低维护成本,指派我开始做起前端开发app的工作,我和公司的小伙伴们就开始了漫长的app开发之 ...

  5. iOS开发系列--App扩展开发

    概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...

  6. #2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文

    写在前面: 每年的过年前夕,手中的项目一定会告急...而自己又缺乏三头六臂七十二变等特技,所以只能在鸿蒙社区先消失一阵子了.今天再看社区的帖子,发现大家的进步可不一般,各种案例示例层出不穷,一片欣欣向 ...

  7. Android开发系列之搭建开发环境

    接触Android好久了,记得09年刚在中国大陆有点苗头的时候,我就知道了google有个Android,它是智能机操作系统.后来在Android出1.5版本之后,我第一时间下载了eclipse开发工 ...

  8. 测试平台系列(71) Python定时任务方案

    大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 定时任务 定时任务,顾名思义: ...

  9. BizTalk开发系列(六) BizTalk开发简述

    现在很多大型企业信息化程度很高,运行中的系统可达到数十乃至上百个.而大部分系统由于建设的时间.开发团队和技术 往往不相同,系统之间的大部分都是独立运行的.随着信息化建设的深入各系统之间的交互需求越来越 ...

随机推荐

  1. intellij IDEA版本控制设置

    我们开发肯定是有版本控制的,大家以前Eclipse的时候在本地文件和版本库不一致的时候,那么文件以及所在的文件夹都会出现一个〉表示,大家能很轻松的看到本地文件修改了哪一些,但是IntelliJ中默认是 ...

  2. Android 使用 adb命令 远程安装apk

    Android 使用 adb命令 远程安装apk ./adb devices 列出所有设备 ./adb connect 192.168.1.89 连接到该设备 ./adb logcat 启动logca ...

  3. [LUOGU] 2820 局域网

    题目背景 某个局域网内有n(n<=100)台计算机,由于搭建局域网时工作人员的疏忽,现在局域网内的连接形成了回路,我们知道如果局域网形成回路那么数据将不停的在回路内传输,造成网络卡的现象.因为连 ...

  4. python中函数定义之实参、形参

    一般在函数的定义中,会有一类变量---形参,它是函数完成其工作的一项信息.实参往往是调用函数时传递给函数的信息.我们在调用函数时,将要让函数使用的信息放在括号内.例如定义一个函数def greet_u ...

  5. laravel模型关联与列表展示

    上面这个是一个模型关联的图,其实我们很容易去理解 比如说,一对一,也就是说一个用户对应的是一个手机号. 一对多,比如说一篇文章可以有多条评论 一对多反向:如一篇文章可以有多条评论,但对应每条评论也只针 ...

  6. day12-图

  7. H.264 Profile-level-id

    基于SIP协议的VOIP通信,该字段通常位于视频协商sdp报文中,如: video RTP/AVP rtpmap: H264/ fmtp: profile-level-id=42801E; packe ...

  8. jdbc 和 hibernate 比较

    相同点:都是数据库操作的中间件,都不是线程安全需要即时关闭,都可以对数据库操作进行显式处理. 不同:jdbc使用标准sql语言,hibernate使用HQL,操作对象jdbc直接操作数据传送到数据库, ...

  9. 浅谈 HTTP 协议

    一. HTTP简介 超文本传输协议 Hyper Text Transfer Protocol 是一种用于分布式.协作式和超媒体信息系统的应用层协议 HTTP是万维网的数据通信的基础 HTTP有很多应用 ...

  10. C#上位机开发(二)—— Hello,World

    上一篇大致了解了一下单片机实际项目开发中上位机开发部分的内容以及VS下载与安装,按照编程惯例,接下来就是“Hello,World!” 1.新建C#项目工程 首先选择新建Windows窗体应用(.NET ...