一、接口开发
1.mock接口开发
a.没有模拟好的接口,可以模拟它
b.给别人提供数据
2.flask功能和格式
a.flask 是一个轻量级框架,可以使用它实现一个网站或者web服务。
b.首先要先安装第三方模块flask ,再引用
pip install flask
c.用flask开发接口的流程:
(1).定义一个server
server=flask.Flask(__name__) #__name__代表当前的python文件。把当前的python文件当做一个服务启动
(2).然后定义接口函数,一般函数和接口函数的区别在于,定义为接口的函数上方要特别加上:
@server.route('/index',methods=['get','post']) #第一个参数就是路径,第二个参数支持的请求方式,不写的话默认是get
(3).执行server
server.run(port=8888,debug=True,host='0.0.0.0') # host不写,默认的是本地地址127.0.0.1,只能自己访问,如果host='0.0.0.0',则可以其他电脑访问,并且地址是你电脑的ip地址
#port可自定义填写。不要与机器上已占用的port冲突。
#debug=True,在代码进行修改后,程序会自动重新加载,不用再次运行。也就是运行一次即可,即使改动代码,也不需要重启服务
#host本地ip地址,写0.0.0.0,可以让其他人直接访问本机的ip。
#最终这个接口的访问地址就是 http://127.0.0.1/index ,get方法或者post方法都可。返回数据是json格式res内容
例如:
import flask,json server = flask.Flask(__name__) @server.route('/login') def welcome(): data = {'code':0,'msg':'登陆成功','session_id':'dkshfalfhsadlfl'} return json.dumps(data,ensure_ascii=False) server.run(port=8888,debug=True) # 5000,debug=Ture ,服务器重启,自动重启
在浏览器或者postman中访问接口的结果是:
3.flask写get接口,参数是字符串/args
import flask,json server = flask.Flask(__name__) @server.route('/urldata') def urldata(): msg = flask.request.args.get('name') pw = flask.request.args.get('pw') data = {'msg':msg,'pw':pw} return json.dumps(data,ensure_ascii=False) server.run(port=8888,debug=True)
在浏览器中访问接口:
4.flask写post接口,参数是values和args
args参数是在postman 中的Param中或者在路径中加?参数 如:
values参数是在body中的from-data中 如:
import flask,json server = flask.Flask(__name__) @server.route('/post',methods=['post']) # post请求 def post(): name = flask.request.args.get('name') pw = flask.request.args.get('pw') # k-v,form-data 里面得参数 stu_name = flask.request.values.get('stu_name') addr = flask.request.values.get('addr') data = {'username':name,'password':pw,'stu_name':stu_name,'addr':addr} return json.dumps(data,ensure_ascii=False) server.run(port=8888,debug=True)
在postman中请求接口,结果如下:
5.flask中写post接口,参数是json
import flask,json server = flask.Flask(__name__) @server.route('/add_stu2',methods=['post']) # post请求 def add_stu2(): if flask.request.is_json: stu_name = flask.request.json.get('stu_name') age = flask.request.json.get('age') sex = flask.request.json.get('sex') addr = flask.request.json.get('addr') phone = flask.request.json.get('phone') stu_class = flask.request.json.get('stu_class') return json.dumps('添加成功',ensure_ascii=False) else: return json.dumps('请传入json',ensure_ascii=False) server.run(port=8888,debug=True)
在postman中执行的结果是:
6.flask 写post接口,上传文件
import flask,json server = flask.Flask(__name__) @server.route('/file',methods=['post']) # post请求 def uploadFile(): file = flask.request.files.get('f') print('filename',file.filename) file.save(file.filename) return json.dumps('上传完成',ensure_ascii=False) server.run(port=8888,debug=True)
用postman访问接口,结果如下: