Python: 为生产环境准备 Python 和 Flask

本文档属于创建 REST API指南的一部分。您可以在此处查看完整指南:使用 Python 的 Flask 构建 REST API 的分步指南

👋 欢迎查阅 Stackhero 文档!

Stackhero 提供即开即用的 Python 云服务 方案,助您高效简化部署流程:

  • 只需一次简单的 git push,即可在几秒钟内将您的应用部署到生产环境。
  • 支持自定义域名,自动配置 HTTPS 证书,安全连接全程托管,无需手动操作。
  • 提供自动备份一键升级可预测的定价,让您专注于代码开发,无需担心基础设施管理。
  • 依托私有专属基础设施,为您带来强劲的性能安全保障。您的环境完全隔离且受到保护。

节省时间简化工作流程:通过 Stackhero 的 Python 云主机,您的代码最快只需 5 分钟即可上线运行。

Flask 内置服务器适合开发阶段。在生产环境中,建议使用如 Gunicorn 这样的高性能 WSGI 服务器。准备方法如下:

  1. 安装 Gunicorn:

    pip install gunicorn
    pip freeze > requirements.txt
    
  2. 使用 Gunicorn 启动应用:

    ENV=production gunicorn app:app \
      --error-logfile - \
      -b 0.0.0.0:8080
    

    这里,app:app 指的是您的文件(app.py)和 Flask 应用实例(app)。

  3. 您可以添加一个 Makefile,方便在开发和生产模式间切换:

    .DEFAULT_GOAL := dev
    
    # Stackhero for Python 默认执行 "run" 规则。我们重写为执行 'prod'。
    run: prod
    
    prod:
    	ENV=production gunicorn app:app \
    	  --error-logfile - \
    	  -b 0.0.0.0:8080
    
    dev:
    	python app.py
    

您可以通过 make dev(或直接 make)以开发模式启动服务器,或通过 make prod 启动生产模式。