Spaces:
Sleeping
Sleeping
| # uvicorn app:app --host localhost --port 7860 --reload | |
| from library.librerias import * | |
| from routers.routers import * | |
| app = FastAPI( | |
| title="API de la Academia Stephen Hawking", | |
| description="Esta es la API de la academia Stephen Hawking, dedicada a la preparaci贸n preuniversitaria. Aqu铆 se pueden realizar operaciones CRUD para gestionar estudiantes, profesores, cursos y m谩s.", | |
| version="1.0.0", | |
| openapi_url="/stephen-hawking-openapi.json", | |
| docs_url="/stephen-hawking-docs", | |
| redoc_url="/stephen-hawking-redoc", | |
| contact={ | |
| "name": "Academia Stephen Hawking", | |
| "url": "https://www.academiashawking.com", | |
| "email": "contacto@academiashawking.com", | |
| }, | |
| license_info={"name": "MIT", "url": "https://opensource.org/licenses/MIT"}, | |
| ) | |
| # CORS | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], | |
| allow_credentials=True, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| # saludo | |
| def read_root(): | |
| return {"message": "Bienvenido a la API de la academia Stephen Hawking"} | |
| # Modelo para recibir consultas SQL | |
| class SQLQuery(BaseModel): | |
| query: str | |
| # Conexi贸n a la base de datos SQLite | |
| def get_db_connection(): | |
| conn = sqlite3.connect('database/academia.db') | |
| conn.row_factory = sqlite3.Row | |
| return conn | |
| def execute_query(sql_query: SQLQuery): | |
| conn = get_db_connection() | |
| try: | |
| # Limpiar la consulta para eliminar '\nObservation' y reemplazar comillas escapadas | |
| cleaned_query = sql_query.query.replace("\nObservation", "").replace("\\'", "'") | |
| print("Solicitud POST completa:", sql_query.json()) | |
| print("Consulta recibida en el servidor:", cleaned_query) | |
| cursor = conn.cursor() | |
| cursor.execute(cleaned_query) | |
| conn.commit() | |
| if cursor.description: # Verifica si la consulta tiene resultados | |
| results = cursor.fetchall() | |
| return {"results": [dict(row) for row in results]} | |
| return {"message": "Consulta ejecutada exitosamente"} | |
| except sqlite3.Error as e: | |
| raise HTTPException(status_code=400, detail=str(e)) | |
| finally: | |
| conn.close() | |
| # Routers | |
| app.router.include_router(api.router) | |