SeeRepo con Python
SeeRepo lee Python con cables: sigue qué archivo usa a cuál, como con TypeScript y JavaScript.
Lo que lee SeeRepo
FastAPI y Flask
- Cada decorador de ruta (
@app.get,@app.post,@app.route,@router.api_route,@app.websocket…) es una parte, con su ruta completa: incluido el prefijo de suAPIRouteroBlueprint. - Una ruta que dibuja una página (
render_template,TemplateResponse…) es una pantalla; una que responde datos, una acción; un webhook, un sitemap o un feed, una puerta de API para máquinas. - El archivo que arranca la app (
FastAPI(),Flask(__name__),app.run()oapp = create_app()) es donde empiezan tus rutas.
Django
- Un
views.pyque dibuja una página es una pantalla; uno que responde JSON o usa Django REST framework, una acción. - Tus archivos
urls.pyson puertas, y tustemplates/son piezas de la interfaz.
Celery
@shared_tasky@app.taskson cosas que corren solas.
Tus modelos
- Los modelos de Django (
models.Model,AbstractUser), de SQLAlchemy (clases declarativas,db.Modelde Flask-SQLAlchemy,Table("…")de Core) y de SQLModel (table=True) se vuelven modelos de datos. UnBaseModelde pydantic no es una tabla, así que no.
Quién entra
Una ruta detrás de @login_required (y sus parientes), LoginRequiredMixin, Depends(get_current_user) o IsAuthenticated de Django REST framework es para Personas con cuenta. El resto, para Visitantes.
Un ejemplo de nuestro banco de pruebas
miguelgrinberg/microblog(Flask): 2 pantallas y 1 acción, 6 modelos de datos con SQLAlchemy (Message, Notification, Post, Task, User, followers), y Redis y Postgres como servicios. Cada ruta deapp/main/routes.pypide sesión (@login_required).testdrivenio/django-celery(Django): 1 pantalla y 1 tarea que corre sola, con Redis.wsvincent/lithium(Django): 1 modelo de datos, CustomUser, con Postgres.
Bueno saber
- Tus paquetes se leen de todas las listas que usa Python:
requirements.txty los archivos de una carpetarequirements/(con los que incluyen),pyproject.toml,Pipfileysetup.cfg. Un paquete que pones en la lista pero nunca importas no sale como servicio; una base de datos sí, porque tu código muchas veces llega a ella sin importarla.