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

mock接口开发-flask模块

mock接口开发-flask模块