Python中使用Flask:Flask Web入门实操

系列文章目录
Python中使用Flask:VsCode调试Flask程序
Python中使用Flask:Flask Web入门实操
Python中使用Flask:Docker发布Flask API

一个小的图像分类模型已经完成,需要一个web的演示环境,Django感觉有点重,了解了一下flask很轻量级,尝试一波,干他一扳手!
推荐flask中文网https://dormousehole.readthedocs.io/en/latest/

  • 安装flask环境
pip install flask
  • 新建manage.py文件
    键入如下代码,开始一个最小的应用
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"
  • CMD环境开始运行程序
set FLASK_APP=manage
flask run

在这里插入图片描述

  • 点击链接打开 ,可以看到返回的结果
    在这里插入图片描述
  • 我们也可以使用下面这种__name__快速启部署,正式部署时,需要注意修改默认端口
if __name__ == '__main__':
    app.run(host="0.0.0.0", debug=True)
  • 演示环境主要是文件上传功能,进行图像判断,那么我们首先需要一个文件上传的接口(参考地址
@app.route('/uploadfile/', methods=['POST'])
def uploadfile():
    if request.method == 'POST':
        # check if the post request has the file part
        if 'file' not in request.files:
            flash('No file part')
            return redirect(request.url)
        file = request.files['file']
        # If the user does not select a file, the browser submits an
        # empty file without a filename.
        if file.filename == '':
            flash('No selected file')
            return redirect(request.url)
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            upload_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
            file.save(upload_path) 
            ret=llp.predict(upload_path)
            print(ret)
            json_dict = {
                 "type":ret[0],
                 "probability":str(ret[1]),
                 "fileurl":"http://127.0.0.1:5000/static/uploads/"+filename#url_for('static', filename='uploads/'+filename)#url_for中加入uploads报错
                }
            return jsonify(json_dict)#json.dumps(json_dict) 不推荐使用json.dumps()将字典转换成json字符串返回,因为Content-Type还是默认为text/html
    return ''
  • 但是这样所有的文件是分散的,看起来怪怪的,没有一个项目的样子,这样不方便后期维护和开发,我们修改一个项目的基本结构(大型应用作为一个包
wwxcweb
│──app.py  启动主文件
│  
└─wwxcweb
    │  fileupload.py  文件上传接口路由文件
    │  returnhtml.py  返回静态页面路由文件
    │  __init__.py	  主文件,导入其他路由界面 初始化flask文件
    │  
    └─static  静态文件夹
        │  index.html  静态页面
        │  
        └─uploads      文件上传路径

  • 我们将各个模块的路由写到对应的文件中,在__init__.py中集中导入,批量管理和配置,这样就使我们的项目更加规范了。

  • 附关键代码

  • wwxcweb 代码

from setuptools import setup

setup(
    name='wwxcweb',
    packages=['wwxcweb'],
    include_package_data=True,
    install_requires=[
        'flask',
    ],
)
  • init.py 代码
from flask import Flask

app = Flask(__name__)


import wwxcweb.fileupload 
import  wwxcweb.returnhtml 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值