美文网首页
记一次 python 解析二维码(ZBar) flask 开发

记一次 python 解析二维码(ZBar) flask 开发

作者: Waymon丶魏 | 来源:发表于2023-10-09 15:34 被阅读0次

    一 :pycharm 创建步骤

    640.png

    二:代码结构

    640-1.png

    三: pip 下载

    1 因为使用虚拟环境 所以下载需要跟本地环境区分开 虚拟环境(python3.11)

     > python3.11 -m pip install pyzbar
    

    2 这样 python3.11 -m pip freeze > requirements.txt 的时候 只会导出虚拟环境需要的插件 而不是本地环境所有的插件

    3 Dockerfile RUN : pip3 install -r requirements.txt 只下载虚拟环境插件

    四 :废话不多说 上代码!

    import os
    from PIL import Image
    from pyzbar.pyzbar import decode
    from flask import Flask, request, jsonify
    
    app = Flask(__name__)
    
    
    @app.route('/code', methods=['POST'])
    def decode_qr_code():
        # 上传图片
        file = request.files['file']
        save_path = "tmp"
        if not os.path.exists(save_path):
            os.makedirs(save_path)
        # 图片路径
        img_path = os.path.join(save_path + '/' + file.filename)
        file.save(img_path)
        # 打开图像文件
        image = Image.open(img_path)
        # 解码二维码
        decoded_objects = decode(image)
        # data
        data = ""
        # 遍历解码的对象并打印结果
        for obj in decoded_objects:
            print("Data:", obj.data.decode("utf-8"))
            data = obj.data.decode("utf-8")
            os.remove(img_path)
    
        return jsonify({'data': data, 'msg': 'ok', 'status': 0})
    
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=5001)
    

    五 :

    调用方式:post

    uri :  http://127.0.0.1:5001/code 
      param : file 
    
      response :   data  msg   status
    

    六 : Dockerfile

    
    FROM python:3.11.2
    
    ADD . /app
    
    WORKDIR /app
    
    RUN pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    EXPOSE 5001
    
    CMD ["python3", "main.py"]
    

    七 打包

    
    build : docker build -t waymon_zbar:v0.0.1 .
    run: build run --name waymon_bar01 -p 5001:5001 -d waymon_bar:v0.0.1
    

    八 :注意事项

    1. zbar 基于本地zbar macos 需要下载 brew install zbar

    1. linux apt-get 可以自行查询下载

    2. 有些 mac FROM python:3.11.2 的时候提示 Forbien 没权限 可以换个方式打包 本人测试 在服务器上打包是没有问题的 ,但是不推荐直接在服务器上打包

    4 FROM aliyunxxxxxxx/python:3.11.2 阿里云的公共镜像 但是在linux 服务上运行 会出现 usr/local/bin/python exec format error 。所以说还是不能直接使用阿里云的公共镜像

    5 下载插件使用国内源

    -i https://pypi.tuna.tsinghua.edu.cn/simple
    

    6 下篇给大家分享 python flask mysql 有关的源码

    7 有啥python学习遇到的问题 以及写的一些小工具和源码 欢迎咨询

    8 我最近在做流量主小程序 大家可以围观一下 《城市核辐射监测》 有关流量主收益 我会按时公开数据 以便大家学习

    9 有需要 JetBrains 全家桶的 也可以咨询哦 ! (99年我自己也在使用)

    相关文章

      网友评论

          本文标题:记一次 python 解析二维码(ZBar) flask 开发

          本文链接:https://www.haomeiwen.com/subject/bcvibdtx.html