Python: Preparar Python e Flask para implantação em produção

Esta documentação faz parte do guia Criar uma API REST. Consulte o guia completo aqui: Como criar uma API REST usando Flask.

👋 Bem-vindo à documentação do Stackhero!

Stackhero oferece uma solução cloud Python pronta a usar que proporciona uma série de benefícios, incluindo:

  • Implemente a sua aplicação em segundos com um simples git push.
  • Utilize o seu próprio nome de domínio e beneficie da configuração automática de certificados HTTPS para uma segurança reforçada.
  • Desfrute de tranquilidade com backups automáticos, atualizações com um clique, e preços simples, transparentes e previsíveis.
  • Obtenha performance ótima e segurança robusta graças a uma VM privada e dedicada.

Poupe tempo e simplifique a sua vida: só leva 5 minutos para experimentar a solução de hospedagem cloud Python do Stackhero!

Embora este guia use o servidor de desenvolvimento integrado do Flask, para produção é essencial usar um servidor WSGI pronto para produção, como o Gunicorn. Siga estes passos:

  1. Instale o Gunicorn:

    pip install gunicorn
    pip freeze > requirements.txt
    
  2. Inicie a sua aplicação usando Gunicorn com o argumento app:app (onde o primeiro app é o nome do ficheiro e o segundo app é a instância Flask):

    ENV=production gunicorn app:app \
      --error-logfile - \
      -b 0.0.0.0:8080
    
  3. Crie um Makefile para simplificar a mudança entre os modos de desenvolvimento e produção:

    .DEFAULT_GOAL := dev
    
    # Por padrão, o Stackhero para Python executa a regra "run". Nós a substituímos para executar a regra 'prod'.
    run: prod
    
    prod:
     	ENV=production gunicorn app:app \
     	  --error-logfile - \
     	  -b 0.0.0.0:8080
    
    dev:
     	python app.py
    

Pode executar o seu servidor em modo de desenvolvimento usando make dev (ou simplesmente make), e em modo de produção usando make prod.