一、接口开发的作用
mock接口:模拟功能:
用处:
1、自己模拟要调用的接口,测试自己要模拟的各种情况
2、给别人提供数据,别人调我的接口,我把数据范湖给他
二、flask模块:
1.flask模块是轻量级的web开发框架.可以开发网站,也可以开发接口,主要用来开发接口、
缺点:操作数据库不方便
首先,需要安装Python依赖库
pip install flask
1、举个简单例子,登录成功接口
import flask server = flask.Flask(__name__)#初始化的过程,起动一个服务,把当前这个Python文件当做一个服务 @server.route('/index')#通过python装饰器的方式定义一个陆游地址/index是接口的url def login(): d = {'code':0,'msg':'success'} return json.dumps(d,ensure_ascii=False) server.run(host='0.0.0.0',port=8083,debug =True) # 默认端口号是5000,可自行修改; # 指定host为0.0.0.0在一个局域网里的别人也可以访问,公网ip # debug=True 修改代码则无须重启
运行:
使用浏览器访问:
2、举个例子,不想让访问到数据库所有数据,只能访问个别的表 app_student,app_user,app_product的接口
import flask import pymysql import json server = flask.Flask(__name__) def op_mysql(sql,many_tag=False): conn = pymysql.connect(host='118.24.3.40',user='jxz',password='123456', db='jxz',port=3306,charset='utf8', autocommit=True) cur = conn.cursor(pymysql.cursors.DictCursor) cur.execute(sql) if many_tag: result = cur.fetchall() else: result = cur.fetchone() cur.close() conn.close() return result @server.route('/get_data') def table_data(): table_list = ['app_myuser','app_product','app_student'] table_name = flask.request.args.get('table_name') limit = flask.request.args.get('limit',5)#5为默认值 if table_name : if table_name in table_list: sql = 'select * from %s limit %s'%(table_name,limit) data = op_mysql(sql,True) else: data = {'code': -2, 'msg': "你没有权限查看这个表里面的数据"} else: data = {'code': -1, 'msg': "必填参数未填,请查看接口文档"} return json.dumps(data,ensure_ascii=False)#list可转为json串 server.run(host='0.0.0.0',port=8023,debug=True)#run只能写一次,且必须写在最下面
(1)当传入允许访问的数据库表名时
(2)当传入的是不允许访问的数据库表名时
(3)当不传入任何参数时
3、举个例子,post方法
import flask server =flask.Flask(__name__)#把当前python文件当作一个服务 @server.route('/post_data',methods=['post']) #methods默认支持get,methods=['post']post请求,methods=['post','get]支持get,post def post_data(): # user_name=flask.request.args.get('username') #参数在url中时,使用args.get get()函数中的名是请求的参数名 user_name2=flask.request.values.get('username2') #参数在body中,使用values.get file=flask.request.files.get('file_name') file.save(file.filename)#保存文件为上传的文件名 # print(file.filename) return file.filename+' '+user_name2 #必须要有返回值,且返回值是字符串类型 server.run(host='0.0.0.0',port=8023,debug=True)#run只能写一次,且必须写在最下面
需要用postman请求: