Python: Python en Flask voorbereiden voor productie-deployment

Deze documentatie maakt deel uit van de Een REST API maken-gids. Bekijk de volledige gids hier: Hoe een REST API te maken met Flask.

👋 Welkom bij de Stackhero-documentatie!

Stackhero biedt een kant-en-klare Python cloud oplossing die tal van voordelen biedt, waaronder:

  • Implementeer uw applicatie in seconden met een eenvoudige git push.
  • Gebruik uw eigen domeinnaam en profiteer van de automatische configuratie van HTTPS-certificaten voor verbeterde beveiliging.
  • Geniet van gemoedsrust met automatische back-ups, updates met één klik, en eenvoudige, transparante en voorspelbare prijzen.
  • Krijg optimale prestaties en robuuste beveiliging dankzij een privé en dedicated VM.

Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Python cloud hosting oplossing van Stackhero te proberen!

Hoewel deze gids de ingebouwde ontwikkelserver van Flask gebruikt, is het voor productie essentieel om een productieklare WSGI-server zoals Gunicorn te gebruiken. Volg deze stappen:

  1. Installeer Gunicorn:

    pip install gunicorn
    pip freeze > requirements.txt
    
  2. Start uw app met Gunicorn met het app:app argument (waarbij de eerste app de bestandsnaam is en de tweede app de Flask-instantie):

    ENV=production gunicorn app:app \
      --error-logfile - \
      -b 0.0.0.0:8080
    
  3. Maak een Makefile om het schakelen tussen ontwikkel- en productiemodi te vereenvoudigen:

    .DEFAULT_GOAL := dev
    
    # Standaard voert Stackhero voor Python de "run" regel uit. We overschrijven deze om de 'prod' regel uit te voeren.
    run: prod
    
    prod:
     	ENV=production gunicorn app:app \
     	  --error-logfile - \
     	  -b 0.0.0.0:8080
    
    dev:
     	python app.py
    

U kunt uw server in ontwikkelmodus uitvoeren met make dev (of gewoon make), en in productiemodus met make prod.