python进阶-mock接口
setting.py
MYSQL_HOST='192.168.127.139'
PASSWORD=''
PORT=3306
USER='root'
DB='stu'
tools.py
import pymysql,redis
from conf import setting
def op_mysql(sql):
conn=pymysql.connect(host=setting.MYSQL_HOST,user=setting.USER,
passwd=setting.PASSWORD,
port=setting.PORT,db=setting.DB,
charset='utf8'
)
cur=conn.cursor(cursor=pymysql.cursors.DictCursor)
cur.execute(sql)
sql_start=sql[:6].upper()
if sql_start=='SELECT':
res=cur.fetchall()
else:
conn.commit()
res='ok'
cur.close()
conn.close()
return res def op_redis(host,password,k,v=None,port=6379,db=0):
r=redis.Redis(host=host,password=password,port=port,db=db)
if v:
r.set(k,v)#有传key就说明是set操作
res='ok'
else:
res=r.get(k)
if res:#判断有没有get到数据
res=res.decode()#没有传key就说明是get操作,如果传的key不存在返回None,None没有decode
else:
res=None
return res
student.py
import flask,json#轻量级的web开发框架
from lib.tools import op_mysql
#接口 后台服务
server=flask.Flask(__name__) #返回python文件名,此处把python文件当成一个服务
#获取所有用户信息的接口
@server.route('/get_user',methods=['get','post'])#装饰器,接受两个参数:路径/请求方式
def get_all_user():
sql='select * from Student limit 10;'
res = op_mysql(sql=sql)
response=json.dumps(res,ensure_ascii=False)#把list转化成jason
return response#return 只能reture字符串 #添加学生的接口
@server.route('/add_user',methods=['post'])#装饰器,路径/请求方式
def add_user():
s_no=flask.request.values.get('s_no')#获得传入的参数
sname = flask.request.values.get('sname')#获得传入的参数
age = flask.request.values.get('age')
sex = flask.request.values.get('sex')
if s_no and sname and age and sex:#判断必填参数非空
sql = "insert into Student values ('%s','%s','%s','%s');" % (s_no,sname,age,sex)#添加学生的sql语句
#sql ="INSERT INTO Student VALUES ('%s','%s','%s','%s');"%(s_no,sname,age,sex)
res = op_mysql( sql=sql)#调用封装的mysql函数
response={'code':203,'msg':'成功了'}#请求成功后返回的信息
else:#必填项为空提示信息
response = {'code': 403, 'msg': '必填参数未填!'}
return json.dumps(response,ensure_ascii=False)#将response转化成jason返回,ensure_ascii=False,使中文正常显示,不指定的话,会显示中文对应的ascii
start.py
import sys,os
#os.path.dirname(__file__)
#print(sys.path)
BATH_PATH=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#取两次父目录 ,__file__代表当前目录,os.path.dirname取父目录
sys.path.insert(0,BATH_PATH)#加入环境变量
from lib.student import server
#server.run(port=8088,debug=True)
#想让别人访问,同一个局域网host='0.0.0.0',用实际的ip访问
server.run(port=8088,host='0.0.0.0',debug=True) 返回的信息是:
* Restarting with stat
* Debugger is active!
* Debugger PIN: 290-225-122
* Running on http://127.0.0.1:9999/ (Press CTRL+C to quit)
以 http://127.0.0.1:9999/add_user访问接口
python进阶-mock接口的更多相关文章
- 测试开发系列之Python开发mock接口(一)
什么是mock接口呢,举个栗子,你在一家电商公司,有查看商品.购物.支付.发 货.收获等等等一大堆功能,你是一个测试人员,测测测,测到支付功能的时候,你就要调用第三方支付接口了,真实支付,直接扣你支付 ...
- 测试开发系列之Python开发mock接口(二)
上一篇咱们已经把开发前的环境准备好了,还需要再做一点准备,你的账户信息是存在哪的呢,当然是存在数据库里的,咱们在去支付,扣钱的时候,肯定是从数据库里面操作的,去更新账户表里面的数据,所以咱们先要把数据 ...
- 测试开发系列之Python开发mock接口(三)
于进入主题了,前面的准备工作都已经做好了,下面就开始写逻辑的代码了,代码我已经写好了,每行都加了注释,不明白的可以留言. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 ...
- python语言(六)mock接口开发、发邮件、写日志、新Excel操作
一.urllib模块 urllib模块是一个标准模块,直接import urllib即可,在python3里面只有urllib模块,在python2里面有urllib模块和urllib2模块. url ...
- Python(七) —— mock接口开发
mock接口开发 接口开发有很多框架,诸如 Django,flask,相比较而言,flask 是轻量级web开发框架,用来开发 mock 接口的不二之选.那你可能会问,什么叫 mock 接口呢?moc ...
- Python进阶-XVII 非python的接口类、多态、python自己的封装
1.python模拟java中的接口类 python中是没有接口类的概念的,因为它支持多继承,但是java不能,所以就提出一个接口类的概念 java : 面向对象编程 设计模式 —— 接口 接口类 : ...
- Python进阶:设计模式之迭代器模式
在软件开发领域中,人们经常会用到这一个概念——“设计模式”(design pattern),它是一种针对软件设计的共性问题而提出的解决方案.在一本圣经级的书籍<设计模式:可复用面向对象软件的基础 ...
- Python进阶量化交易专栏场外篇7- 装饰器计算代码时间
欢迎大家订阅<教你用 Python 进阶量化交易>专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前已推出如下扩展篇: 在第一篇 ...
- Python进阶量化交易场外篇5——标记A股市场涨跌周期
新年伊始,很荣幸笔者的<教你用 Python 进阶量化交易>专栏在慕课专栏板块上线了,欢迎大家订阅!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外会陆续推出一些手记来辅助同学们学习 ...
随机推荐
- Java基础 使用转换流进行文件的复制 / RandomAccessFile 类进行文件的复制
笔记: **使用转换流进行文件的复制 文本文件---字节流FileInputStream--> [InputStreamReader] -----字符流BufferedReader------ ...
- 【数位DP-板子题目】HDU-3555-Bomb- [只要49]
Bomb Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepted Su ...
- cmake升级3.6
https://blog.csdn.net/u013714645/article/details/77002555 ./boostrap gmake gmake install
- 大数据之路week05--day02(Maven安装,环境变量的配置及基本使用)
今天我们就来学习一下maven,怎么说呢,maven更像是一种管理的工具,实现的原理是使用插件. 举个例子,比如说,一个公司需要做一个项目,这个项目又分成了很多的模块,每个模块又分成了许多的业务等等, ...
- go语言信号量的使用例子
//shared values are passed around on channels // 信号量. /* var sem = make(chan int, MaxOutstanding) fu ...
- 快捷键IntelliJ IDEA For Mac
http://www.cnblogs.com/wxd0108/p/5295017.html Mac键盘符号和修饰键说明 ⌘ Command ⇧ Shift ⌥ Option ⌃ Control ↩︎ ...
- [Google Guava] 12-数学运算
原文链接 译文链接 译者:沈义扬 范例 1 int logFloor = LongMath.log2(n, FLOOR); 2 int mustNotOverflow = IntMath.checke ...
- [git]用户名,邮箱
1.查看当前的用户名,邮箱 git config user.name git config user.email 2. 修改当前用户名,邮箱 git config --global user.name ...
- VUE 异步数据传递给 component props 的问题
案例一 父组件parent.vue // asyncData为异步获取的数据,想传递给子组件使用 <template> <div> 父组件 <child :child-d ...
- 洛谷P1903 [国家集训队]数颜色 / 维护队列 ( 带 修 )
题意:有两种操作: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔. 2. R P Col 把第P支画笔替换为颜色Col. 对每个1操作 输出答案: 带修莫队 模板题 (加 ...