Django esta construido con Python, lenguaje OO, interpretado y con tipado dinámico (+ duck typing)
En Django todo comienza creando un proyecto, este servirá de base para luego crear nuestra aplicaciones. Creamos un proyecto así:
django-admin.py startproject mi_sitio
(django-admin.py es un utilitario de comandos para tareas de administracion del django)
Esto genera una carpeta con los archivos de python que se muestran en la clase Project
(* a partir de la versión 1.4 solo esta el manage.py en la carpeta del project, y se genera una carpeta - paquete, con el mismo nombre del project, ubicandose allí los archivos settings.py y urls.py)
Como vemos, un Project posee 3 archivos python:
- Settings.py, formado por un conjunto se variables donde se setean por ej.: los detalles de conexión con la/s base de datos, directorios de archivos media y templates, aplicaciones ó módulos instalados en el proyecto.
- Urls.py, es como una tabla donde se mapean las urls de nuestro proyecto con las funciones que controlan la creación de nuestros templates html, de aquí en más views de cada aplicación.
- Manage.py, es un wrapper del django-admin.py que realiza las sig. tareas antes de delegar el comando al django-admin.py: 1) pone el paquete del proyecto en el sys.path, y 2) setea la variable DJANGO_SETTINGS_MODULE para que apunte al settings.py de su proyecto.
python manage.py startapp conferencias
Esto genera una nueva carpeta dependiente del proyecto, donde se crearán los archivos:
- models.py, aquí crearemos las clases que forman el modelo de esa aplicación, nuestros 'business objects', por ej: Conferencia, Oyente, Disertante, etc.
- views.py, aquí van los métodos que contienen la lógica de negocio que construirá la página, nuestras controladoras de Casos de uso. Cada una de estas funciones es llamada en Django : View y está mapeada a una url (no necesariamente todas...) del sitio web en el archivo urls.py del proyecto.
Ejecutando el localhost para probar nuestro sitio
Django posee funcionalidad de web server para poder probar nuestras aplicaciones en un localhost, ejecutando el sig. comando desde la carpeta del proyecto:
python manage.py runserver
veremos en la consola que se validan los modelos (models.py de las aplicaciones) y luego nos muestra la versión de Django usada y que el server de desarrollo esta ejecutandose en http://127.0.0.1:8000/
Si queremos que la aplicación que se está generando se vea en otros clientes de la red podremos especificar el nro. de ip de nuestra máquina (y el puerto que deseemos) , por ej:python manage.py runserver 10.0.0.78:8000
Al probar en nuestro browser favorito veremos un mensaje de bienvenida de Django.Django es un framework web MVC, aunque ellos lo describan como MVT (model-View-Template), es un tema de conceptos que esta bien explicado por la gente de Django.