mock接口开发-flask模块
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);出现这个请求无效报错说明请求没有进入到后台服务里;