Python: Przygotowanie Pythona i Flask do wdrożenia produkcyjnego

Ta dokumentacja jest częścią przewodnika Tworzenie REST API. Pełny przewodnik znajdziesz tutaj: Jak stworzyć REST API za pomocą Flask.

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje gotowe do użycia rozwiązanie Python cloud, które zapewnia wiele korzyści, w tym:

  • Wdrażaj swoją aplikację w kilka sekund za pomocą prostego git push.
  • Używaj własnej nazwy domeny i korzystaj z automatycznej konfiguracji certyfikatów HTTPS dla zwiększonego bezpieczeństwa.
  • Ciesz się spokojem dzięki automatycznym kopiom zapasowym, aktualizacjom jednym kliknięciem oraz prostemu, przejrzystemu i przewidywalnemu cennikowi.
  • Uzyskaj optymalną wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.

Oszczędzaj czas i upraszczaj sobie życie: wypróbowanie rozwiązania Python cloud hosting Stackhero zajmuje tylko 5 minut!

Chociaż ten przewodnik używa wbudowanego serwera deweloperskiego Flask, dla produkcji konieczne jest użycie serwera WSGI gotowego do produkcji, takiego jak Gunicorn. Wykonaj te kroki:

  1. Zainstaluj Gunicorn:

    pip install gunicorn
    pip freeze > requirements.txt
    
  2. Uruchom swoją aplikację za pomocą Gunicorn z argumentem app:app (gdzie pierwszy app to nazwa pliku, a drugi app to instancja Flask):

    ENV=production gunicorn app:app \
      --error-logfile - \
      -b 0.0.0.0:8080
    
  3. Utwórz Makefile, aby uprościć przełączanie między trybami deweloperskim i produkcyjnym:

    .DEFAULT_GOAL := dev
    
    # Domyślnie Stackhero dla Pythona wykonuje regułę "run". Zastępujemy ją, aby wykonać regułę 'prod'.
    run: prod
    
    prod:
     	ENV=production gunicorn app:app \
     	  --error-logfile - \
     	  -b 0.0.0.0:8080
    
    dev:
     	python app.py
    

Możesz uruchomić swój serwer w trybie deweloperskim używając make dev (lub po prostu make), a w trybie produkcyjnym używając make prod.