网站首页 > 技术文章 正文
一 :pycharm 创建步骤
二:代码结构
三: pip 下载
1 因为使用虚拟环境 所以下载需要跟本地环境区分开 虚拟环境(python3.11)
> python3.11 -m pip install pyzbar
python3.11 -m pip install flask
python3.11 -m pip install Pillow
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
2. linux apt-get 可以自行查询下载
3. 有些 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年我自己也在使用)
猜你喜欢
- 2024-10-03 不改一行代码!快速部署流行框架到腾讯云 Serverless
- 2024-10-03 Flask 基础理解(flask基础入门)
- 2024-10-03 AI界最危险武器GPT-2使用指南:从Finetune到部署
- 2024-10-03 解决Flask-SocketIO部署遇到的问题
- 2024-10-03 Python Web 部署(pythonweb服务器部署)
- 2024-10-03 Python Flask 大型应用的架构(python的flask案例)
- 2024-10-03 使用Docker部署Python Flask Web应用的最佳实践
- 2024-10-03 带你认识 flask 错误处理(flask errorhandler)
- 2024-10-03 使用 Python 和 Flask 架设网站:入门指南
- 2024-10-03 【flask】如何配置和使用Flask日志?
- 最近发表
-
- count(*)、count1(1)、count(主键)、count(字段) 哪个更快?
- 深入探索 Spring Boot3 中 MyBatis 的 association 标签用法
- js异步操作 Promise fetch API 带来的网络请求变革—仙盟创梦IDE
- HTTP状态码超详细说明_http 状态码有哪些
- 聊聊跨域的原理与解决方法_跨域解决方案及原理
- 告别懵圈!产品新人的接口文档轻松入门指南
- 在Javaweb中实现发送简单邮件_java web发布
- 优化必备基础:Oracle中常见的三种表连接方式
- Oracle常用工具使用 - AWR_oracle工具有哪些
- 搭载USB 3.1接口:msi 微星 发布 990FXA Gaming 游戏主板
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)