python实现一个接口服务(二)

090甘肃机场版本图片上传接口

说明:
接口 /iris/personInfo 成功返回后才会执行 /iris/biometricInfo

import urllib

import flask, json,time
from flask import request
import  base64
'''
flask: web框架,通过flask提供的装饰器@server.route()将普通函数转换为服务
'''

# Flask获取post提交数据
# 创建一个服务,把当前这个python文件当做一个服务
server = flask.Flask(__name__)
# server.config['JSON_AS_ASCII'] = False
# @server.route()可以将普通函数转变为服务 登录接口的路径、请求方式
# http://124.192.224.46:9018/iris/capture
@server.route('/iris/personInfo', methods=['post'])
def login():
    if request.method == 'POST':

        # 一、Flask后端获取GET请求的数据
        # name = request.args.get('name')
        #
        # 二、Flask后端获取POST请求的数据
        # get_data = json.loads(request.get_data(as_text=True))
        #
        # name = get_data['name']
        data = json.loads(request.get_data(as_text=True))
        request_id = ''
        for key, value in data.items():


            if key == 'request_id':
                request_id = value
                print('111',request_id)
            if key == 'image':
                print('抓拍图', value["face"])
                f = open('./img_090_LZ/face_photo.txt', mode='w')
                # 步骤1.url解码 2.base64解码
                data = urllib.parse.unquote(value["face"])
                f.write(data)  # write 写入
                f.close()
                # 人脸图像
                with open("./img_090_LZ/face_photo.txt", "r") as f:
                    imgdata = base64.b64decode(f.read())
                    file = open('./img_090_LZ/' + getTime() + '_face_photo.jpg', 'wb')
                    file.write(imgdata)
                    file.close()
                # resu = {'code': 1, 'msg': '比对成功', "request_id": request_id}
                # return json.dumps(resu, ensure_ascii=False)  # 将字典转换为json串, json是字符串
            if key == 'identify_info':
                print('左眼',value["photo"])
                f = open('./img_090_LZ/face.txt',mode = 'w')
                # 步骤1.url解码 2.base64解码
                data = urllib.parse.unquote(value["photo"])
                f.write(data)  # write 写入
                f.close()

                # 证件照
                # with open("./img_090_LZ/face.txt", "r") as f:
                #     imgdata = base64.b64decode(f.read())
                #     file = open('./img_090_LZ/'+getTime()+'_face.jpg', 'wb')
                #     file.write(imgdata)
                #     file.close()
                # # 左眼
                # with open("./img/iris_l.txt", "r") as f:
                #     imgdata = base64.b64decode(f.read())
                #     file = open('./img/'+getTime()+'_l.jpg', 'wb')
                #     file.write(imgdata)
                #     file.close()
                # # 右眼
                # with open("./img/iris_r.txt", "r") as f:
                #     imgdata = base64.b64decode(f.read())
                #     file = open('./img/' + getTime() + '_r.jpg', 'wb')
                #     file.write(imgdata)
                #     file.close()
        resu = {'code': 1, 'msg': '比对成功',"request_id": request_id}
        print(json.dumps(resu, ensure_ascii=False))  # 将字典转换为json串, json是字符串
        return  json.dumps(resu, ensure_ascii=False)


@server.route('/iris/biometricInfo', methods=['post'])
def login2():


    if request.method == 'POST':
        print('1222')
        data = json.loads(request.get_data(as_text=True))
        for key, value in data.items():
            if key == 'image':
                face = open('./img_090_LZ/face.txt', mode='w')
                f_iris_l = open('./img_090_LZ/iris_l.txt', mode='w')
                f_iris_r = open('./img_090_LZ/iris_r.txt', mode='w')
                # 步骤1.url解码 2.base64解码
                data = urllib.parse.unquote(value["face"])
                data_iris_l = urllib.parse.unquote(value["left"])
                data_iris_r = urllib.parse.unquote(value["right"])
                face.write(data)
                f_iris_l.write(data_iris_l)  # write 写入
                f_iris_r.write(data_iris_r)
                face.close()
                f_iris_l.close()
                f_iris_r.close()
                with open("./img_090_LZ/face.txt", "r") as f:
                    imgdata = base64.b64decode(f.read())
                    file = open('./img_090_LZ/' + getTime() + '_face.jpg', 'wb')
                    file.write(imgdata)
                    file.close()

                # 左眼虹膜图像
                with open("./img_090_LZ/iris_l.txt", "r") as f:
                    imgdata = base64.b64decode(f.read())
                    file = open('./img_090_LZ/' + getTime() + '_iris_l.jpg', 'wb')
                    file.write(imgdata)
                    file.close()
                with open("./img_090_LZ/iris_r.txt", "r") as f:
                    imgdata = base64.b64decode(f.read())
                    file = open('./img_090_LZ/' + getTime() + '_iris_r.jpg', 'wb')
                    file.write(imgdata)
        #             file.close()
        # resu = {'code': 0, 'message': '成功'}
        # return json.dumps(resu, ensure_ascii=False)  # 将字典转换为json串, json是字符串
        return  data


def getTime():
    now = time.strftime("%Y-%m-%d %H_%M_%S")
    return now



if __name__ == '__main__':
    server.run(debug=True, port=8888, host='0.0.0.0')  # 指定端口、host,0.0.0.0代表不管几个网卡,任何ip都可以访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值