Сделал статистику
This commit is contained in:
parent
ba13e38690
commit
7fddc7a77e
4
main.py
4
main.py
@ -2,11 +2,12 @@ from fastapi import FastAPI
|
||||
import logging
|
||||
from contextlib import asynccontextmanager
|
||||
|
||||
from database import create_tables, delete_tables
|
||||
|
||||
from router_questions import router as questions_router
|
||||
from router_class import router as class_router
|
||||
from router_flight import router as flight_router
|
||||
from router_reviews import router as reviews_router
|
||||
from router_statistics import router as statistic_router
|
||||
|
||||
# Настройка логирования
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
@ -23,4 +24,5 @@ app.include_router(questions_router)
|
||||
app.include_router(class_router)
|
||||
app.include_router(flight_router)
|
||||
app.include_router(reviews_router)
|
||||
app.include_router(statistic_router)
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
from sqlalchemy import select, delete
|
||||
from sqlalchemy import select, delete, func
|
||||
from sqlalchemy.orm import joinedload
|
||||
from datetime import datetime
|
||||
import urllib.parse
|
||||
@ -68,3 +68,11 @@ class QuestionRepository:
|
||||
question_models = result.scalars().all()
|
||||
question_schemas = [SQuestion.model_validate(question_model) for question_model in question_models]
|
||||
return question_schemas
|
||||
|
||||
@staticmethod
|
||||
async def get_class_statistics() -> dict:
|
||||
async with new_session() as session:
|
||||
query = select(QuestionOrm.answer, func.count(QuestionOrm.id)).group_by(QuestionOrm.answer)
|
||||
result = await session.execute(query)
|
||||
statistics = {answer: count for answer, count in result.fetchall()}
|
||||
return statistics
|
||||
|
@ -1,6 +1,8 @@
|
||||
from fastapi import APIRouter
|
||||
from typing import List
|
||||
|
||||
from repository import QuestionRepository
|
||||
|
||||
router = APIRouter(
|
||||
prefix="/class",
|
||||
tags=["Class"],
|
||||
@ -21,3 +23,4 @@ async def get_class_names() -> List[str]:
|
||||
|
||||
|
||||
|
||||
|
||||
|
16
router_statistics.py
Normal file
16
router_statistics.py
Normal file
@ -0,0 +1,16 @@
|
||||
from fastapi import APIRouter
|
||||
|
||||
from repository import QuestionRepository
|
||||
|
||||
router = APIRouter(
|
||||
prefix="/statistics",
|
||||
tags=["Statistics"],
|
||||
)
|
||||
|
||||
@router.get("/")
|
||||
async def get_class_statistics():
|
||||
statistics = await QuestionRepository.get_class_statistics()
|
||||
return statistics
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user