Python: Przygotowanie Pythona i Flask do wdrożenia produkcyjnego

Ta dokumentacja jest częścią przewodnika Tworzenie REST API. Pełny przewodnik znajdziesz tutaj: Przewodnik krok po kroku po budowie REST API z Flask w Pythonie.

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje gotowe do użycia Python cloud, które upraszcza proces wdrażania:

  • Wdrażaj swoją aplikację na produkcję w kilka sekund za pomocą prostego git push.
  • Korzystaj z własnej nazwy domeny, z automatyczną konfiguracją certyfikatu HTTPS – bezpieczne połączenia są obsługiwane za Ciebie.
  • Polegaj na automatycznych backupach, aktualizacjach jednym kliknięciem oraz przewidywalnych kosztach, dzięki czemu możesz skupić się na kodzie, a nie na zarządzaniu infrastrukturą.
  • Korzystaj z wysokiej wydajności i bezpieczeństwa na prywatnej, dedykowanej infrastrukturze. Twoje środowisko jest odizolowane i chronione.

Oszczędzaj czas i upraszczaj swój workflow: Twój kod może działać na Python cloud hosting Stackhero już w 5 minut.

Wbudowany serwer Flask jest świetny do developmentu. W produkcji zaleca się użycie wydajnego serwera WSGI, takiego jak Gunicorn. Oto jak się przygotować:

  1. Zainstaluj Gunicorn:

    pip install gunicorn
    pip freeze > requirements.txt
    
  2. Uruchom aplikację za pomocą Gunicorn:

    ENV=production gunicorn app:app \
      --error-logfile - \
      -b 0.0.0.0:8080
    

    Tutaj app:app odnosi się do pliku (app.py) oraz instancji aplikacji Flask (app).

  3. Możesz dodać plik Makefile, aby łatwo przełączać się między trybem development a produkcją:

    .DEFAULT_GOAL := dev
    
    # Stackhero for Python domyślnie uruchamia regułę "run". Nadpisujemy ją, aby uruchamiała 'prod'.
    run: prod
    
    prod:
    	ENV=production gunicorn app:app \
    	  --error-logfile - \
    	  -b 0.0.0.0:8080
    
    dev:
    	python app.py
    

Serwer możesz uruchomić w trybie developerskim poleceniem make dev (lub po prostu make), a w trybie produkcyjnym poleceniem make prod.