Python: Preparazione di Python e Flask per il deployment in produzione

Questa documentazione fa parte della guida Creazione di un'API REST. Consulta la guida completa qui: Come creare un'API REST usando Flask.

👋 Benvenuti nella documentazione di Stackhero!

Stackhero offre una soluzione cloud Python pronta all'uso che fornisce numerosi vantaggi, tra cui:

  • Distribuisci la tua applicazione in pochi secondi con un semplice git push.
  • Usa il tuo nome di dominio e beneficia della configurazione automatica dei certificati HTTPS per una sicurezza migliorata.
  • Goditi la tranquillità con backup automatici, aggiornamenti con un clic, e una tariffazione semplice, trasparente e prevedibile.
  • Ottieni prestazioni ottimali e una sicurezza robusta grazie a una VM privata e dedicata.

Risparmia tempo e semplificati la vita: ci vogliono solo 5 minuti per provare la soluzione di hosting cloud Python di Stackhero!

Sebbene questa guida utilizzi il server di sviluppo integrato di Flask, per la produzione è essenziale utilizzare un server WSGI pronto per la produzione come Gunicorn. Segui questi passaggi:

  1. Installa Gunicorn:

    pip install gunicorn
    pip freeze > requirements.txt
    
  2. Avvia la tua app usando Gunicorn con l'argomento app:app (dove il primo app è il nome del file e il secondo app è l'istanza Flask):

    ENV=production gunicorn app:app \
      --error-logfile - \
      -b 0.0.0.0:8080
    
  3. Crea un Makefile per semplificare il passaggio tra modalità sviluppo e produzione:

    .DEFAULT_GOAL := dev
    
    # Di default, Stackhero per Python esegue la regola "run". La sovrascriviamo per eseguire la regola 'prod'.
    run: prod
    
    prod:
     	ENV=production gunicorn app:app \
     	  --error-logfile - \
     	  -b 0.0.0.0:8080
    
    dev:
     	python app.py
    

Puoi eseguire il tuo server in modalità sviluppo usando make dev (o semplicemente make), e in modalità produzione usando make prod.