Florilegio de la Fe está construido sobre Django 4.2 siguiendo el patrón MVT (Model–View–Template): los modelos enDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/alfonsoolavarria/florilegio/llms.txt
Use this file to discover all available pages before exploring further.
main_florife/models.py describen el esquema de datos sobre PostgreSQL, las vistas en main_florife/views.py (y sus módulos hermanos) contienen la lógica de negocio, y los templates HTML en templates/ producen las respuestas finales. Un único proyecto Django llamado florilegiofe aloja la app principal main_florife, que concentra todo el dominio editorial, bíblico y de usuarios.
Estructura de la aplicación
| Directorio / Módulo | Rol |
|---|---|
florilegiofe/ | Proyecto Django: settings.py, urls.py, wsgi.py, asgi.py |
main_florife/ | App principal: modelos, vistas, admin, middleware, context processors, management commands, adaptadores de autenticación |
templates/ | Templates HTML del frontend (cargados con APP_DIRS=True y el directorio raíz configurado en TEMPLATES[0]['DIRS']) |
biblia/morphhb/ | Datos morfológicos del hebreo bíblico (Open Scriptures Hebrew Bible — OSHB) |
static/ | Archivos estáticos de desarrollo (CSS, JS, imágenes). En producción se sirven con WhiteNoise desde staticfiles/ |
media/ | Archivos subidos por usuarios, principalmente fotos de autores |
Flujo de una petición
Cuando un navegador solicita, por ejemplo,/articulo/la-gracia-de-dios/, el ciclo es el siguiente:
florilegiofe/urls.py (ROOT_URLCONF = 'florilegiofe.urls'). Éste importa directamente las vistas de main_florife y delega las rutas OAuth a allauth.urls mediante include. Las rutas de administración de la Biblia, YouVersion y el portal de autores se dividen en módulos de vistas separados (views_api_bible, views_youversion, views_authors).
Middleware de seguridad
La pila de middleware se define ensettings.MIDDLEWARE en este orden:
SecurityHeadersMiddleware (definido en main_florife/middleware.py) es el último en ejecutarse y añade dos cabeceras de seguridad a todas las respuestas:
| Cabecera | Valor |
|---|---|
Referrer-Policy | strict-origin-when-cross-origin |
Permissions-Policy | geolocation=(), microphone=(), camera=() |
DEBUG=False) se activan adicionalmente SECURE_SSL_REDIRECT, SECURE_HSTS_SECONDS = 31536000, cookies seguras de sesión y CSRF, y SECURE_CONTENT_TYPE_NOSNIFF.
Context processors
main_florife/context_processors.py registra el processor seo, disponible en todos los templates, que inyecta tres variables globales:
| Variable | Valor por defecto |
|---|---|
seo_title | "Florilegio de la Fe - Teología, Historia y Biografías Cristianas" |
seo_description | "Profundiza en la intimidad con Dios a través de artículos de teología, historia de la iglesia, biografías cristianas y estudio bíblico." |
seo_image | "images/ff.jpg" |
context dict para personalizar las meta-etiquetas SEO por página.
Autenticación
Florilegio combina tres mecanismos de autenticación registrados enAUTHENTICATION_BACKENDS:
ModelBackend— autenticación estándar de Django por usuario y contraseña.EmailBackend(main_florife.auth_backends.EmailBackend) — permite iniciar sesión con correo electrónico en lugar de nombre de usuario.allauth.account.auth_backends.AuthenticationBackend— OAuth2 a través de django-allauth con el proveedor Google configurado con PKCE.
/registro/) crea el usuario con is_active=False, genera un código de 6 dígitos, lo envía por Brevo con una plantilla transaccional y activa la cuenta sólo tras la verificación en /verificar-email/. La vista de registro está protegida con @ratelimit(key='ip', rate='5/h').
Navegación relacionada
Data Models
Referencia completa de todos los modelos Django: Editorial, Bíblico, Usuarios y más.
Tech Stack
Dependencias, servicios externos y fuentes de datos bíblicos.