6、发布预测服务(Flask)

Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。它被称为微框架(microframework),“微”并不是意味着把整个Web应用放入到一个Python文件,微框架中的“微”是指Flask旨在保持代码简洁且易于扩展,Flask框架的主要特征是核心构成比较简单,但具有很强的扩展性和兼容性,程序员可以使用Python语言快速实现一个网站或Web服务。

下面代码非常简单,可优化的地方很多,只是作为示例说明,具体参考Flask教程:[https://www.w3cschool.cn/flask/flask_overview.html]

"""
Routes and views for the flask application.
"""

from datetime import datetime
from flask import render_template
from FlaskRestFull import app
from flask import request
import os
from PIL import Image
import json
import tensorflow as tf
import numpy as np
import os,glob,cv2
import sys,argparse
from FlaskRestFull import dogscats 

sess_dogcat = tf.Session()
fil =os.getcwd()
saver = tf.train.import_meta_graph('FlaskRestFull/models/dogs-cats-model/dog-cat.ckpt-7975.meta')
saver.restore(sess_dogcat, 'FlaskRestFull/models/dogs-cats-model/dog-cat.ckpt-7975')


@app.route('/upload', methods=['GET','POST'])
def upload_file():
    data =[]
    for file in request.files:
        ofile =  request.files.get(file)
        imgPath = os.path.join('D:\\',ofile.filename)
        ofile.save(imgPath)
        images = dogscats.getImages(imgPath,64)
        result = dogscats.getResult(sess_dogcat,images,64,3)
        res_label = ['dog','cat']
        str = r'%s  %s  %s'%(file,result,res_label[result.argmax()])
        data.append(str)
    return json.dumps(data)

你可能感兴趣的:(6、发布预测服务(Flask))