Skip to content

TencentCloudBase/cloudrun-flask

Repository files navigation

快速部署 Flask 应用

一个完整的 Flask 应用模板,支持快速部署到 CloudBase 平台。

📚 文档导航

文档 描述 适用场景
项目创建指南 从零开始创建 Flask 项目的详细步骤 新手入门、项目初始化
HTTP 云函数部署 部署到 CloudBase HTTP 云函数的完整指南 轻量级 API、按需计费
云托管部署 部署到 CloudBase 云托管的完整指南 企业应用、持续运行

🎯 快速选择指南

🚀 快速开始

前置条件

  • Python 3.8 或更高版本
  • 了解基本的 Python 虚拟环境使用
  • 腾讯云账号并开通了 CloudBase 服务
  • 基本的 Python 和 Flask 开发知识

创建应用

# 快速创建(基础步骤)
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

本地测试

# 启动开发服务器
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 云函数部署文档

快速部署

# 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 控制台

🐳 云托管部署

适合企业级应用,支持更复杂的部署需求,容器化部署。

特点

  • ✅ 持续运行,适合企业级应用
  • ✅ 完全自定义环境和端口
  • ✅ 支持复杂的依赖和配置
  • ⚠️ 按资源使用量计费

📖 完整指南云托管部署文档

快速部署

# 1. 构建镜像
docker build -t flask-app .

# 2. 推送到 CloudBase 镜像仓库
# 3. 通过控制台或 CLI 部署

🔧 项目创建

如果你是新手或需要从零开始创建项目:

📖 完整指南项目创建指南

快速创建

# 基础项目创建
mkdir my-flask-app && cd my-flask-app
python -m venv env
source env/bin/activate
pip install Flask gunicorn

🔧 API 接口

本模板包含以下 RESTful API 接口:

基础接口

GET /                        # 欢迎页面
GET /health                  # 健康检查

用户管理

GET /api/users               # 获取用户列表(支持分页)
GET /api/users/{user_id}     # 获取单个用户
POST /api/users              # 创建用户
PUT /api/users/{user_id}     # 更新用户
DELETE /api/users/{user_id}  # 删除用户

示例请求

# 健康检查
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:

Q: 部署时遇到问题怎么办? A: 查看对应的部署文档,里面有详细的故障排除指南:

⚙️ 配置相关

端口配置

  • HTTP 云函数:必须使用 9000 端口
  • 云托管:推荐使用 8080 端口,支持自定义

文件要求

  • HTTP 云函数:需要 scf_bootstrap 启动脚本和 env 目录
  • 云托管:需要 Dockerfile.dockerignore

💾 数据存储

当前配置

  • 使用内存存储(重启后数据丢失)
  • 适合演示和测试环境

生产环境建议

  • 集成数据库(PostgreSQL、MySQL 等)
  • 使用 Flask-SQLAlchemy 进行 ORM 操作
  • 详细配置请查看各部署文档

📖 更多帮助

如需更详细的帮助,请查看:

🛠️ 开发工具

推荐的开发依赖

# 核心框架
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 文件:

# 应用配置
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 自动文档生成

🔗 相关链接

📚 项目文档

🌐 官方文档

📄 许可证

本项目采用 MIT 许可证。详情请查看 LICENSE 文件。


需要帮助?

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published