# cloudrun-flask **Repository Path**: TencentCloudBase/cloudrun-flask ## Basic Information - **Project Name**: cloudrun-flask - **Description**: 快速部署 Flask 应用 - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-04 - **Last Updated**: 2026-01-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 快速部署 Flask 应用 一个完整的 Flask 应用模板,支持快速部署到 CloudBase 平台。 ## 📚 文档导航 | 文档 | 描述 | 适用场景 | |------|------|----------| | [项目创建指南](./docs/project-setup.md) | 从零开始创建 Flask 项目的详细步骤 | 新手入门、项目初始化 | | [HTTP 云函数部署](./docs/http-function.md) | 部署到 CloudBase HTTP 云函数的完整指南 | 轻量级 API、按需计费 | | [云托管部署](./docs/cloud-run.md) | 部署到 CloudBase 云托管的完整指南 | 企业应用、持续运行 | ### 🎯 快速选择指南 - **🆕 新手开发者** → 先看 [项目创建指南](./docs/project-setup.md) - **☁️ 轻量级部署** → 使用 [HTTP 云函数部署](./docs/http-function.md) - **🏢 企业级部署** → 使用 [云托管部署](./docs/cloud-run.md) ## 🚀 快速开始 ### 前置条件 - [Python 3.8](https://www.python.org/downloads/) 或更高版本 - 了解基本的 Python 虚拟环境使用 - 腾讯云账号并开通了 CloudBase 服务 - 基本的 Python 和 Flask 开发知识 ### 创建应用 ```bash # 快速创建(基础步骤) mkdir cloudrun-flask && cd cloudrun-flask python -m venv env source env/bin/activate # Windows: env\Scripts\activate pip install Flask==3.1.2 gunicorn==24.1.1 ``` ### 本地测试 ```bash # 启动开发服务器 python app.py # 或者使用 Flask CLI flask --app app run --host 0.0.0.0 --port 8080 # 访问应用 open http://localhost:8080 ``` ## 📦 项目结构 ``` cloudrun-flask/ ├── app.py # Flask 主应用文件 ├── requirements.txt # Python 依赖文件 ├── .gitignore # Git 忽略文件 ├── docs/ # 📚 详细文档目录 │ ├── project-setup.md # 项目创建指南 │ ├── http-function.md # HTTP 云函数部署指南 │ └── cloud-run.md # 云托管部署指南 ├── env/ # 虚拟环境(本地开发用) ├── scf_bootstrap # HTTP 云函数启动脚本 ├── Dockerfile # 云托管容器配置 └── .dockerignore # Docker 忽略文件 ``` ## 🎯 部署方式 ### 部署方式对比 | 特性 | HTTP 云函数 | 云托管 | |------|------------|--------| | **计费方式** | 按请求次数和执行时间 | 按资源使用量(CPU/内存) | | **启动方式** | 冷启动,按需启动 | 持续运行 | | **适用场景** | API 服务、轻量级应用 | 企业级应用、复杂 Web 应用 | | **端口要求** | 固定 9000 端口 | 可自定义端口(默认 8080) | | **扩缩容** | 自动按请求扩缩 | 支持自动扩缩容配置 | | **Python 环境** | 预配置 Python 运行时 | 完全自定义 Python 环境 | ### 选择部署方式 - **选择 HTTP 云函数**:轻量级 API 服务、间歇性访问、成本敏感 - **选择云托管**:企业级应用、复杂 Web 应用、需要更多控制权 ## 📚 详细部署指南 > **💡 提示**:以下是快速概览,详细步骤请查看对应的专门文档。 ### 🔥 HTTP 云函数部署 适合轻量级应用和 API 服务,按请求计费,冷启动快。 **特点**: - ✅ 按请求次数计费,成本低 - ✅ 自动扩缩容,无需管理服务器 - ✅ 冷启动快,适合间歇性访问 - ⚠️ 固定使用 9000 端口 **📖 完整指南**:[HTTP 云函数部署文档](./docs/http-function.md) **快速部署**: ```bash # 1. 创建启动脚本 echo '#!/bin/bash export PORT=9000 export PYTHONPATH="./env/lib/python3.10/site-packages:$PYTHONPATH" /var/lang/python310/bin/python3.10 app.py' > scf_bootstrap # 2. 安装依赖到 env 目录 pip install -r requirements.txt -t env/lib/python3.10/site-packages/ # 3. 打包上传到 CloudBase 控制台 ``` ### 🐳 云托管部署 适合企业级应用,支持更复杂的部署需求,容器化部署。 **特点**: - ✅ 持续运行,适合企业级应用 - ✅ 完全自定义环境和端口 - ✅ 支持复杂的依赖和配置 - ⚠️ 按资源使用量计费 **📖 完整指南**:[云托管部署文档](./docs/cloud-run.md) **快速部署**: ```bash # 1. 构建镜像 docker build -t flask-app . # 2. 推送到 CloudBase 镜像仓库 # 3. 通过控制台或 CLI 部署 ``` ### 🔧 项目创建 如果你是新手或需要从零开始创建项目: **📖 完整指南**:[项目创建指南](./docs/project-setup.md) **快速创建**: ```bash # 基础项目创建 mkdir my-flask-app && cd my-flask-app python -m venv env source env/bin/activate pip install Flask gunicorn ``` ## 🔧 API 接口 本模板包含以下 RESTful API 接口: ### 基础接口 ```bash GET / # 欢迎页面 GET /health # 健康检查 ``` ### 用户管理 ```bash GET /api/users # 获取用户列表(支持分页) GET /api/users/{user_id} # 获取单个用户 POST /api/users # 创建用户 PUT /api/users/{user_id} # 更新用户 DELETE /api/users/{user_id} # 删除用户 ``` ### 示例请求 ```bash # 健康检查 curl https://your-app-url/health # 获取用户列表(分页) curl "https://your-app-url/api/users?page=1&limit=5" # 创建新用户 curl -X POST https://your-app-url/api/users \ -H "Content-Type: application/json" \ -d '{"name":"测试用户","email":"test@example.com"}' # 更新用户 curl -X PUT https://your-app-url/api/users/1 \ -H "Content-Type: application/json" \ -d '{"name":"更新用户","email":"updated@example.com"}' # 删除用户 curl -X DELETE https://your-app-url/api/users/1 ``` ## ❓ 常见问题 ### 🚨 部署相关问题 **Q: 如何选择部署方式?** A: - **轻量级 API** → [HTTP 云函数部署](./docs/http-function.md) - **企业级应用** → [云托管部署](./docs/cloud-run.md) - **新手入门** → [项目创建指南](./docs/project-setup.md) **Q: 部署时遇到问题怎么办?** A: 查看对应的部署文档,里面有详细的故障排除指南: - [HTTP 云函数常见问题](./docs/http-function.md#常见问题) - [云托管常见问题](./docs/cloud-run.md#常见问题) ### ⚙️ 配置相关 **端口配置**: - **HTTP 云函数**:必须使用 9000 端口 - **云托管**:推荐使用 8080 端口,支持自定义 **文件要求**: - **HTTP 云函数**:需要 `scf_bootstrap` 启动脚本和 `env` 目录 - **云托管**:需要 `Dockerfile` 和 `.dockerignore` ### 💾 数据存储 **当前配置**: - 使用内存存储(重启后数据丢失) - 适合演示和测试环境 **生产环境建议**: - 集成数据库(PostgreSQL、MySQL 等) - 使用 Flask-SQLAlchemy 进行 ORM 操作 - 详细配置请查看各部署文档 ### 📖 更多帮助 如需更详细的帮助,请查看: - [项目创建指南](./docs/project-setup.md) - 完整的项目创建流程 - [HTTP 云函数部署](./docs/http-function.md) - 云函数部署详细步骤 - [云托管部署](./docs/cloud-run.md) - 云托管部署详细步骤 ## 🛠️ 开发工具 ### 推荐的开发依赖 ```bash # 核心框架 pip install Flask==3.1.2 # 生产服务器 pip install gunicorn==24.1.1 # 数据库支持 pip install Flask-SQLAlchemy psycopg2-binary # 环境变量 pip install python-dotenv==1.2.1 # API 开发 pip install Flask-RESTful Flask-CORS ``` ### 环境变量配置 创建 `.env` 文件: ```env # 应用配置 DEBUG=True SECRET_KEY=your-secret-key-here FLASK_ENV=development PORT=8080 # 数据库配置(可选) DATABASE_URL=postgresql://user:password@localhost/dbname ``` ## 📖 进阶功能 - **蓝图支持**:模块化应用结构 - **模板引擎**:Jinja2 模板支持 - **数据库集成**:SQLAlchemy ORM 支持 - **会话管理**:Flask-Session 支持 - **认证授权**:Flask-Login 和 Flask-JWT 支持 - **API 文档**:Flask-RESTX 自动文档生成 ## 🔗 相关链接 ### 📚 项目文档 - [项目创建指南](./docs/project-setup.md) - 从零开始创建 Flask 项目 - [HTTP 云函数部署](./docs/http-function.md) - 轻量级云函数部署方案 - [云托管部署](./docs/cloud-run.md) - 企业级容器化部署方案 ### 🌐 官方文档 - [CloudBase 官方文档](https://docs.cloudbase.net/) - [Flask 官方文档](https://flask.palletsprojects.com/) - [Python 官方文档](https://docs.python.org/) ## 📄 许可证 本项目采用 MIT 许可证。详情请查看 [LICENSE](./LICENSE) 文件。 --- **需要帮助?** - 🆕 **新手入门** → [项目创建指南](./docs/project-setup.md) - ☁️ **云函数部署** → [HTTP 云函数部署](./docs/http-function.md) - 🐳 **容器部署** → [云托管部署](./docs/cloud-run.md) - 📖 **Flask 官方文档** → [Flask 快速入门](https://flask.palletsprojects.com/quickstart/)