Django conceptos¶
En esta página vamos a cubrir elementos conceptuales y explicaciones extra que se ven al trabajar con el framework django.
Parte 1¶
Trabajo realizado¶
- Comandos básicos
- Proyecto
- Aplicaciones
- Ejecutar server desarrollo
- Gestión de URLs
- Vistas
Estado de los ficheros¶
Estructura general del trabajo realizado
>tree .
.
├── db.sqlite3 <- Aquí están los datos (en el futuro será una base de datos)
├── manage.py <- Script de administración
├── misitio <- Elementos generales del proyecto
│ │ \- Proyecto = Conjunto de apps
│ ├── asgi.py
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── settings.cpython-38.pyc
│ │ ├── urls.cpython-38.pyc
│ │ └── wsgi.cpython-38.pyc
│ ├── settings.py
│ ├── urls.py <- Configuración de las rutas del proyecto
│ │ \- Para no concentrar todas las url aquí
│ │ \- incluimos las urls de las apps
│ │ \- tenemos una app especial admin que veremos después
│ └── wsgi.py
└── polls <- La primera app del proyecto
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│ └── __init__.py
├── models.py
├── __pycache__
│ ├── __init__.cpython-38.pyc
│ ├── urls.cpython-38.pyc
│ └── views.cpython-38.pyc
├── tests.py
├── urls.py <- Configuración de las rutas de la app
└── views.py <- "Vistas" de la app
Pero... ¿no estamos ante MVC?¶
MVC es un patrón cuyo origen está en los años 70
MVC fue introducido por Trygve Reenskaug (web personal) en Smalltalk-76 durante su visita a Xerox Parc67 en los años 70, seguidamente, en los años 80, Jim Althoff y otros implementaron una versión de MVC para la biblioteca de clases de Smalltalk-80.8 Solo más tarde, en 1988, MVC se expresó como un concepto general en un artículo9 sobre Smalltalk-80.
-- Wikipedia
Existen muchas variantes MVC, MVVM, MV*, MV...What?
En concreto django lo podemos definir así ver orignial
- Modelo: Datos y lógica de negocio. Es lo único que no cambia entre las distintas versiones de MVC
- Vista: Como simple representación de los datos serían los templates
- Controlador: Como elemento que intercambia mensajes en Modelo y Vista, se lleva a cabo por el propio framework (urls, settings) y la ejecución de las view (mensajes a modelos y elección de template)
Parte 2¶
Trabajo realizado¶
- Fichero de configuración
- Backend de base de datos
- Aplicaciones instaladas
- Modelos
- Definición
- Uso
- Área de administración
- Configuración
- Crear super usuario
- Migraciones
- Generación
- Ejecución
Estado de los ficheros¶
.
├── db.sqlite3 <- Almacen de los datos reales.
| \- con el settings podemos usar un motor real
├── manage.py
├── mysite
│ ├── asgi.py
│ ├── __init__.py
│ ├── __pycache__ <- Compilación para más velocidad
| | \- se omite el contenido .pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── polls
├── admin.py <- Información para el área de admin
├── apps.py <- Configuración de la aplicación
├── __init__.py
├── migrations <- Plan de migración (makemigrations)
| | \- si queremos ejecutar es: migrate
│ └── 0001_initial.py <- primera migración de nuestra app 'polls'
├── models.py
├── tests.py
├── urls.py
└── views.py
Parte 3¶
Resumen de tareas
Chuleta!!¶
- Definir modelo
- Sincronizar DB
- makemigration
- migrate
- Registrar en admin
- Definir un template <- html e información
- Definir url
- Definir vista
- Pedir información a model
- Mandárselo a un template