flask架构api

发票识别
1.发票字段定位配置(可根据实际样本调整,获取数据更准确)
2.解决图片有大小的问题后在进行定位(统一一样大小)

git pull --ff-only或git merg


1.使用venv虚拟环境(myvenv) 
创建虚拟环境:python -m venv myvenv
Windows下激活虚拟环境:myvenv\Scripts\activate.bat
Windows查看虚拟环境的python路径:python -c "import sys; print(sys.executable)"
Windows删除虚拟环境:rd /s /q myvenv  

Windows下生产环境:waitress-serve --port=8000 run:application

paddleocr2.6.1版本内部库会报错,需要修改db_posttprocess.py文件中的代码188行,将np.int改为np.int32或np.int64

阿里云镜像: https://mirrors.aliyun.com/pypi/simple/
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

2.目录结构
flask_api_project/
├── app/                          # 主应用目录
│   ├── __init__.py               # 初始化Flask应用和全局配置
│   ├── routes/                   # 路由模块(或 views/)
│   │   ├── auth.py               # 认证相关路由
│   │   ├── users.py              # 用户相关路由
│   │   └── posts.py              # 文章相关路由
│   ├── models/                   # 数据模型(ORM)
│   │   ├── user.py               # 用户模型
│   │   └── post.py               # 文章模型
│   ├── services/                 # 业务逻辑层(可选)
│   │   ├── auth_service.py       # 认证逻辑
│   │   └── user_service.py       # 用户相关逻辑
│   ├── utils/                    # 工具函数
│   │   ├── helpers.py            # 通用辅助函数
│   │   └── decorators.py         # 自定义装饰器
│   ├── config.py                 # 配置文件(开发/测试/生产)
│   ├── extensions.py             # 第三方扩展初始化(如数据库、Redis等)
│   └── errors.py                 # 自定义错误处理

├── tests/                        # 单元测试
│   ├── test_auth.py
│   └── test_users.py

├── migrations/                   # 数据库迁移脚本(Alembic)
├── static/                       # 静态文件(CSS/JS/图片)
├── templates/                    # 模板文件(如使用Jinja2)
├── requirements.txt              # 依赖库列表
├── .env                          # 环境变量(开发用)
├── .flaskenv                     # Flask环境配置
└── run.py                        # 启动脚本(开发环境)

3.依赖库列表
pip.exe freeze > requirements.txt
pip install -r requirements.txt  # 从文件批量安装

4.flask在vscode中使用debug模式
修改.vscode/launch.json文件(debug配置文件)
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Flask",
            "type": "python",
            "request": "launch",
            "module": "flask",
            "env": {
                "FLASK_APP": "app",  // 指向包含create_app()的模块
                "FLASK_ENV": "development",
                "FLASK_DEBUG": "1"
            },
            "args": [
                "run",
                "--no-debugger",  // 禁用Flask内置调试器
                "--no-reload"     // 禁用自动重载(调试时建议关闭)
            ],
            "jinja": true,         // 启用Jinja2模板调试
            "justMyCode": false    // 允许调试第三方库
        }
    ]
}

5.宝塔中运行flask框架项目报错ImportError: libGL.so.1: cannot open shared object file: No such file or directory
在宝塔面板中运行 Flask 项目时出现 libGL.so.1 缺失错误,通常是因为项目依赖的某些 Python 库(如 OpenCV、Matplotlib 等)需要图形渲染库。以下是针对宝塔环境的完整解决方案:
​1. 根本原因分析
​宝塔环境特点:默认最小化安装的 Linux 系统,缺少图形相关依赖
​影响范围:主要影响以下 Python 库:
OpenCV (cv2)
Matplotlib
PyQt/PySide
其他需要 GPU/OpenGL 加速的库
方法 1:安装基础 OpenGL 库(推荐)​
# CentOS 系统
sudo yum install mesa-libGL -y

6.宝塔上部署flask应用(映射域名时遇到问题)
在宝塔面板中使用 ​Python项目管理器 映射域名时遇到端口或 uWSGI 模式问题,可通过以下方案解决:
​1. 问题原因
​uWSGI限制:宝塔的 Python 项目管理器暂不支持直接通过 .sock 文件映射域名
​**✅ 终极解决方案(推荐)​**
​方案A:改用「端口模式」+ Nginx反向代理
​步骤1:修改Flask项目配置
python
# app.py 确保指定端口
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)  # 必须明确端口
​步骤2:Nginx反向代理,指向Flask端口
nginx
server {
    listen 80;
    server_name yourdomain.com;
    location / {
        proxy_pass http://127.0.0.1:5000;  # 指向Flask端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}


flask架构api_第1张图片

你可能感兴趣的:(flask框架,flask架构api项目,flask,架构,python)