Generator szkieletu Flask
Generuj strukturę projektu Flask: REST API lub web app. Wybierz SQLAlchemy, auth, Blueprint, testy. Pobierz ZIP z gotowym projektem Python. Bezpłatnie.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator szkieletu Flask – Python boilerplate bez konfiguracji od zera
Flask to minimalistyczny web framework Pythona – elastyczny i bez narzuconej struktury, co oznacza że każdy projekt zaczyna się inaczej. Narzędzie generuje spójną, profesjonalną strukturę projektu Flask na podstawie wybranych komponentów: bazy danych, autoryzacji, testów i deployment.
Dostępne konfiguracje projektu
Tryb aplikacji: REST API (JSON endpoints) lub Web App (Jinja2 templates + forms). Baza danych: SQLAlchemy + SQLite (dev), PostgreSQL lub MySQL. Migracje: Flask-Migrate (Alembic). Auth: Flask-Login (session) lub JWT (flask-jwt-extended). Walidacja: Marshmallow lub WTForms. Cache: Flask-Caching (Redis/Memcached).
Struktura katalogów projektu
app/__init__.py (Application Factory). app/models.py – modele SQLAlchemy. app/routes/ – Blueprints (moduły routerów). app/schemas.py – Marshmallow schemas (walidacja + serializacja). app/config.py – konfiguracja per-environment. tests/ – pytest fixtures + testclient. requirements.txt + .env.example + Dockerfile.
Application Factory pattern
Zamiast globalnego app = Flask(__name__): def create_app(config): app = Flask(__name__); app.config.from_object(config); db.init_app(app); return app. Korzyści: wiele instancji aplikacji (testy), swobodne importowanie modeli bez circular imports, łatwe przełączanie konfiguracji (dev/test/prod).
Testing z pytest i Flask-Testing
Flask testclient: app.test_client(). Fixture: @pytest.fixture def client(): app = create_app("testing"); yield app.test_client(). Request: client.get("/api/users"). Assert: response.status_code == 200. Factory Boy: generowanie obiektów testowych. Coverage: pytest --cov=app --cov-report=html.
Najczęstsze pytania
Flask czy FastAPI – co wybrać w 2024?
Flask: większy ekosystem, dojrzałe rozszerzenia (Flask-Admin, Flask-SQLAlchemy), świetny dla web app + API, łatwiejszy dla początkujących. FastAPI: automatyczna dokumentacja OpenAPI, walidacja Pydantic, async/await natywnie, szybszy (ASGI). Wybór: Flask dla aplikacji CRUD i web, FastAPI dla pure API z dużym ruchem.
Jak zarządzać środowiskami (dev/prod) w Flask?
python-dotenv + .env plik. Config klasy: class DevelopmentConfig: DEBUG=True; class ProductionConfig: DEBUG=False. create_app(os.getenv("FLASK_ENV","development")). Zmienne wrażliwe (SECRET_KEY, DATABASE_URL): zawsze z env, nigdy w kodzie.
Jak wdrożyć Flask na produkcję?
Gunicorn: gunicorn -w 4 -b 0.0.0.0:8000 "app:create_app()". Nginx jako reverse proxy (upstream do Gunicorn). Supervisor lub systemd: auto-restart przy awarii. Docker: FROM python:3.12-slim + pip install + CMD gunicorn. Heroku/Railway: Procfile: web: gunicorn app:create_app().
Co to są Blueprints i kiedy ich używać?
Blueprint to moduł grupujący powiązane routes, templates, static files. Przykład: auth_bp = Blueprint("auth", __name__, url_prefix="/auth"). Kiedy używać: aplikacja > 5-10 routerów, różne obszary funkcjonalne (auth, admin, api, blog). Blueprints nie są modułami – mogą importować modele z app/.
Jak dodać CORS do Flask API?
pip install flask-cors. from flask_cors import CORS. CORS(app, origins=["https://frontend.com"]). Dla all origins (dev): CORS(app). Per-route: @cross_origin(). Preflight OPTIONS: obsługiwane automatycznie. Credentials: CORS(app, supports_credentials=True).
Powiązane narzędzia: generator szkieletu Express.js, generator GitLab CI/CD i walidator JSON.