mock接口开发 1、模拟第三方接口2、给别人提供数据,避免对方直接连接数据库3、flask是一个web开发框架
1、安装flask模块pip install flask 2、导入模块 3、开发接口 4、启动服务 5、接口测试工具验证接口
import flask
import json
import tools
server=flask.Flask(__name__)#开发一个服务,把当前python文件当成一个服务
@server.route('/api/login',methods=['post','get'])#@是一个装饰器,server.router表示这不是一个普通函数,是后台一个服务,是一个接口,/api/login 访问路径 methods是请求方法,默认get
def login():
if flask.request.is_json:#判断入参是json格式
username=flask.request.json.get('username')#入参是json格式
passwd=flask.request.json.get('passwd')
#username=flask.request.values.get('username')#入参是key-value形式,从请求里获取参数
#passwd=flask.request.values.get('passwd')
d={'erro_code':0,'msg':'登录成功','username':username,'passwd':passwd}
return json.dumps(d,ensure_ascii=False)#ensure_ascii=False显示中文
#访问接口:是ip:端口号 192.168.1.1:8000/api/login
##server.run(host='0.0.0.0',port=8000,debug=True)不能写在这,只能写一次写在最下边,run后边的代码不会执行
@server.route('/api/pay')#methods,请求方式不写默认只支持get请求
def pay():
d={'erro_code':0,'msg':'支付成功'}
return json.dumps(d,ensure_ascii=False)
@server.route('/api/bill')
def get_bill():
table_list=['app_myuser','czm','mjz_sh']
table_name=flask.request.values.get('table_name')
limit=flask.request.values.get('limit',50)#默认值50 def get(self, key, default=None, type=None)
if table_name and table_name in table_list:
sql='select name,phone from %s limit %s'%(table_name,limit)
result=tools.op_mysql(sql)
data={'error_code':0,'msg':'ok','data':result}
else:
data={'error_code':-1,'msg':'没有权限查询该表'}
return json.dumps(data,ensure_ascii=False)
#启动接口
server.run(host='0.0.0.0',port=8001,debug=True)#host=0表示其他人可以通过ip访问这个接口,加debug=True,更新代码会自动运行,不用手动重启
入参是json格式,在postman要选择application/json,json串中每个元素都是双引号表示的,用单引号报400错误
在ajax请求后台数据时有时会报 HTTP 400 错误 - 请求无效 (Bad request);出现这个请求无效报错说明请求没有进入到后台服务里;