一、接口开发的作用

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请求: