Python: 为生产部署准备 Python 和 Flask

本文件是创建 REST API指南的一部分。您可以在这里查看完整指南:使用 Python 的 Flask 构建 REST API 的分步指南

👋 欢迎来到 Stackhero 文档!

Stackhero 提供即开即用的 Python cloud 解决方案,旨在简化您的部署流程:

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

节省时间简化工作流程:通过 Stackhero 的 Python cloud hosting,您的代码最快只需 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 以生产模式启动。