python:接口开发flask模块

一、接口开发的作用

mock接口:模拟功能:

用处:

  1、自己模拟要调用的接口,测试自己要模拟的各种情况

  2、给别人提供数据,别人调我的接口,我把数据范湖给他

二、flask模块:

1.flask模块是轻量级的web开发框架.可以开发网站,也可以开发接口,主要用来开发接口、

缺点:操作数据库不方便

2、练习:

从数据库中获取数据:

import pymysql:
#调用打开数据库的函数:
def op_mysql(sql,many_tag=False):
    conn = pymysql.connect(host='116.14.2.00',user='cnz',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 =flask.Flask(__name__)  #把当前的py文件当做一个服务
@server.route('/login')  #饰器,加上装饰器后,后边的函数就是一个接口。这里写的是什么,在访问的时候就要在末尾加什么
#写成/、/index都行
def login():
    d={'code':'0','msg':'lalalalalala'}
    return json.dumps(d,ensure_ascii=False)
server.run(host='0.0.0.0',port=8989,debug=True)  #启动服务。默认端口号是5000
#host指定成0.0.0.0的时候别人可以访问,否则不能访问
#debug=True,每次运行可以不用重新启动,每次修改完自动就重启了。
#访问时:127.16.108.225:8989/login   #ip:端口/接口名
#从数据库中查数据
@server.route('/get_data')   #装饰器
def get_data():
    table_list=['app_students','app_myuser','app_myuser_new']
    table_name=flask.request.args.get('table_name')#接收用户传过来的参数名   字典格式
    limit=flask.request.args.get('limit',10)
    if table_name :
        if table_name in table_list:
            sql=select * from %s limit %s;'%(table_name,limit)
            data=op_mysql(sql,many_tag=True)
        else:
            data={'code':-2,'msg':'没有权限!'}
   else:
        data={'code':-1,'msg':'必填参数未填,查看接口文档'}
     return json.dumps(data,ensure_ascii=False)
server.run(host='0.0.0.0',port=8989,debug=True)   #这个只要在最下面运行一次即可,如果在上边运行,下边的服务就运行不了了
#程序停掉或关掉pycharm,服务都会停止,除非有外网的服务器。
#在浏览器可请求接口 如:172.16.100.158:8989/login?table_name=sutdents&limit=5
#文件放在服务器上,用python xxx.py运行这个文件即可。前提是有有flask
#post接口请求:
server=flask.Flask(__name__) 
@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 user_name+user_name2                    #必须要有返回值,且返回值是字符串类型

server.run(host='0.0.0.0',port=8989,debug=True)

请求接口时,get在浏览器中请求,请求本机/get_data:127.0.0.1:8989/get_data?table_name=app_myuser

post请求在postman中请求

posted @ 2019-07-03 18:44  4jd121de2gf4e2sa5d  阅读(316)  评论(0编辑  收藏  举报