Точка входа и FastAPI
This commit is contained in:
57
backend/main.py
Normal file
57
backend/main.py
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
from fastapi import FastAPI
|
||||||
|
from fastapi.staticfiles import StaticFiles
|
||||||
|
from fastapi.responses import FileResponse
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
# Импорт роутера
|
||||||
|
from .routes.license_routes import router as license_router
|
||||||
|
|
||||||
|
# Путь к корню проекта
|
||||||
|
BASE_DIR = Path(__file__).resolve().parent
|
||||||
|
|
||||||
|
|
||||||
|
def create_app() -> FastAPI:
|
||||||
|
"""
|
||||||
|
Создание и конфигурация FastAPI приложения.
|
||||||
|
Подключает роутеры и статические файлы.
|
||||||
|
"""
|
||||||
|
apps: FastAPI = FastAPI(
|
||||||
|
title="License Generator API",
|
||||||
|
description="API для генерации лицензий Custom.mxtpro",
|
||||||
|
version="1.0.0"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Подключение роутеров
|
||||||
|
apps.include_router(license_router, prefix="/api")
|
||||||
|
|
||||||
|
# Монтируем статические папки фронтенда
|
||||||
|
apps.mount(
|
||||||
|
"/static/css",
|
||||||
|
StaticFiles(directory=BASE_DIR.parent / "frontend" / "css"),
|
||||||
|
name="css"
|
||||||
|
)
|
||||||
|
apps.mount(
|
||||||
|
"/static/js",
|
||||||
|
StaticFiles(directory=BASE_DIR.parent / "frontend" / "js"),
|
||||||
|
name="js"
|
||||||
|
)
|
||||||
|
apps.mount(
|
||||||
|
"/static/assets",
|
||||||
|
StaticFiles(directory=BASE_DIR.parent / "frontend" / "assets"),
|
||||||
|
name="assets"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Отдача главной страницы
|
||||||
|
@apps.get("/", include_in_schema=False)
|
||||||
|
def read_index() -> FileResponse:
|
||||||
|
"""
|
||||||
|
Отдает главную страницу сайта (index.html)
|
||||||
|
"""
|
||||||
|
index_file = BASE_DIR.parent / "frontend" / "templates" / "index.html"
|
||||||
|
return FileResponse(index_file)
|
||||||
|
|
||||||
|
return apps
|
||||||
|
|
||||||
|
|
||||||
|
# Экземпляр приложения
|
||||||
|
app: FastAPI = create_app()
|
||||||
Reference in New Issue
Block a user