使用flask进行Mock Server模拟接口操作及问题解决
1.flask介绍
flask是一个轻量级的python web 微框架
2.Mock Server介绍
Mock Server是一个开源的模拟服务器,它可以定义和记录API交互,支持各种http方法(get、post、put、delete),可以自定义响应内容,例如返回静态文件
可以使用flask来搭建一个mock模拟服务
3.模拟接口
先安装flask
pip install flask
导入该模块:
from flask import Flask,request
1.编写flask模拟接口,写一个模拟接口的py文件:
先创建一个flask对象,__name__是一个魔术方法,用来表示当前的这个py文件(也叫模块)
app = Flask(__name__)
2.模拟一个访问网页首页的接口:
if __name__ == '__main__':
app.run(debug=True)
使用main方法来启动服务,启动服务后,会显示网页的ip地址和端口号
在上面实例中,使用@app.route('/')装饰器定义了一个根路由/
(/index
),当用户访问根路由时,会调用index()函数并返回字符串"这是网页的首页"
然后使用ip地址和端口号访问网页,加上代码中规定的路径就可以访问首页了,代码里面规定了两种方式(/或者"/index")都可以访问首页
3.模拟一个登录接口:
简单代码演示:
当我们使用ip地址+端口号进行访问时,提示在服务器上找不到url
解决:404:The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.问题
然后我尝试将默认的端口5000改成8899,在main函数参数上新增一个post=8899,再次访问就可以解决现这个找不到url的问题,同时报错:405 方法不被允许
解决:405 Method Not Allowed问题
出现405 方法不被允许,在网页上访问不了,F12打开控制台,发现我接口里面定义的是post方法,页面的login接口是get方法
但是使用postman发送请求是成功的,说明可能在服务器上,post方法不被允许,我们需要使用客户端来发送post方法
为了解决这个问题,我们可以通过重新编写一个登录脚本的方式来尝试解决
然后再次启动mock server服务,并且运行当前脚本,问题就解决啦,成功返回接口定义的“登录页面”信息