
Propósitos del curso y establecimiento de los requisitos previos.
En este capítulo se mencionan y explican algunas características de las cuatro tecnologías que son las protagonistas del curso: “Django”, “Python”, “CSS” y “Bootstrap”. El alumno recibirá conceptos que podrán en contexto las funcionalidades y los propósitos de cada una de ellas.
En este capítulo se define la forma como se ha planeado caminar en el aprendizaje de “django”. También se especifica el alcance y la estructura del proyecto que se va a construir durante todo el curso. Se establece el alcance y la estructura donde se presentan a los principales formularios HTML que son parte del proyecto que se va a desarrollar, explicando su participación dentro del proyecto.
En este capítulo se diseñan los formularios HTML que se mencionaron en el Capítulo 2. Se comienza con el formulario base del proyecto y como se diagrama el aspecto general de todo el proyecto. El alumno verá cómo se van distribuyendo los controles sobre cada uno de ellos y tendrá una visión de la funcionalidad que estos formularios tienen dentro del proyecto y como se insertan dentro de la estructura general de un proyecto web.
Este es un capítulo dedicado a explicar las características de “django” donde el alumno conocerá los ambientes en los que se puede operar con “django”. Aprenderá a instalar “django” y las herramientas que son necesarias para operar con “django” en el sistema operativo Linux y que permitan construir el proyecto del curso. Instalará el editor “Sublime Text 3” y lo configurará para operar como IDE de “Python”. Para todo este entorno aprenderá el concepto de entornos virtuales y creará su propio entorno virtual.
En este capítulo el alumno creará el primer proyecto en “django” que es el proyecto a desarrollar en el curso. Conocerá los componentes de un proyecto de “django” y los archivos que se crean dentro de cada uno de estos componentes. Activará los entornos virtuales y aprenderá a ejecutar el proyecto “django” en un explorador y conocerá la forma como se ejecuta un servidor “django” y los puertos de ejecución. Creará la primera base de datos que será la que almacene toda la información del proyecto que se desarrollará.
En este capítulo el alumno aprenderá a crear aplicaciones en un proyecto “django”, conocerá toda la estructura de una aplicación y los archivos que componen cada una de estas secciones. Conocerá los primeros conceptos de las vistas y la relación entre estas vistas y los archivos "urls.py" y que definen la navegación dentro de un proyecto.
Este capítulo enseña al alumno los primeros fundamentos de “Python” como son las variables, los procedimientos y las funciones y el comando “import”
Un capitulo en el que el alumno aprenderá los conceptos fundamentales de las vistas en “django”. Conocerá como se relacionan las vistas con los formularios HTML y como estos formularios reciben la información desde las vistas. También conocerá la forma como se maneja el direccionamiento de los formularios HTML llamados “Templates” de manera de poder cambiar su ubicación para acomodarlos en diferentes ubicaciones acorde a su diseño particular. Ya comenzará a conocer el archivo de configuración Setting.py en la función de registrar las aplicaciones.
En este capítulo el alumno aprenderá los conceptos de diccionarios en “Python” y las diferentes operaciones que pueden hacerse con esta estructura.
Este capítulo el alumno comienza a construir el proyecto asignándole un logo o una imagen que lo identifica. Se complementa el diseño de la página base del proyecto. Aprenderá a construir una aplicación que servirá de aplicación base de todo el proyecto. Comenzará a trabajar con el editor “Sublime” para la creación de los formularios HTML.
En este capítulo el alumno comienza a conocer los primeros conceptos de “CSS” para la estilización de nuestro proyecto, trabajando sobre nuestro formulario o “template” base. Este capítulo también trabaja sobre los primeros métodos que ofrece “CSS” para la identificación de los elementos dentro de un formulario HTML También se comienza a trabajar con la metodología Flex para el manejo de la diagramación de los elementos en un formulario HTML.
El alumno aprenderá a diseñar la página principal para el proyecto y que es la que se muestra cuando se ingresa al proyecto desde el navegador. Trabajará con los conceptos “extends” para la reutilización de código en los formularios HTML.
Este capítulo está dedicado al manejo de los tipos de letras que se pueden desplegar en una página web como son las fuentes “fonts”. Aprenderá también a leer estas fuentes desde diferentes locaciones y como codificar cada una de estas formas de acceso.
Este capítulo enseña al alumno a trabajar con “CSS”, “flex” y los conceptos “grid” de “CSS” para la diagramación de los formularios HTML. Aprenderá a trabajar combinando las metodologías “Flex” y “Grid” para una diagramación completa y flexible. Seguirá trabajando sobre la página principal e incorporará otras secciones para esta página.
Este es un curso donde se explican los fundamentos de cuatro herramientas diseñadas exclusivamente para desarrollar aplicaciones web.
Estas cuatro herramientas son:
El framework django
El framework Bootstrap
El lenguaje de estilos CSS
El lenguaje de propósito general Python
Como lo menciono, estas cuatro tecnologías constituyen por si especializaciones y es muy ambicioso tratar de cubrir en un solo curso todas sus funcionalidades, recursos y posibilidades. Pero eso no es ningún impedimento para que intentemos utlizarlas en lo que fuera necesario para desarrollar proyectos en django completos y funcionales.
Este curso pretende llevar a los alumnos por el camino del desarrollo directo de un proyecto django desde el inicio, utilizando los recursos de las cuatro herramientas cuando sea necesario, de manera de ir incorporándolas paso a paso esperando que estos conceptos se vayan introduciendo en las etapas de desarrollo de manera que podamos ver como se relacionan dentro de un diseño especifico.
Explicamos la creación de entornos virtuales, la instalación de django, las herramientas adicionales para el desarrollo del proyecto del curso y la instalación del editor de textos Subline Text 3 que será el IDE que utilizaremos en el desarrollo del proyecto.
Explicamos a medida que el proyecto del curso va tomando forma, el patrón de diseño MTV de django. Asi hablamos de aspectos fundamentales dentro de este framework como ser:
Conceptos fundamentales del Servidor Web de django
Creación de proyectos django y la estructura de archivos
Creación de las aplicaciones y su estructura de archivos
El archivo de configuración settings
Migracion desde las propiedades del modelo hacia la base de datos
Navegación y direccionamiento mediante los archivos urls que son parte de toda la estructura de un proyecto django.
Explicamos los fundamentos de las vistas que son las funciones o procedimientos que representan la lógica de nuestro proyecto. Estas funciones están grabadas en el archivo views que es parte de la estructura de un proyecto django. En las vistas también explicamos lo relacionado con las cuatro operaciones que constituyen la base de una interacción entre los usuarios y la base de datos como ser, la inserción registros en la base de datos, la modificación de registros ya grabados en la base de datos, borrar registros ya insertados y listar los registros grabados.
Estudiamos la forma como las vistas constituyen el componente que relaciona a los usuarios del proyecto con la base de datos a través de las Plantillas HTML.
De la misma forma, saltamos hacia las vistas basadas en clases que aportan una gran cantidad de abstracción en el proceso de insertar, modificar, borrar y listar registros haciendo mucho más lógica la codificación de estas operaciones y aportando funciones y procedimientos exclusivamente dedicados a cubrir las etapas de interacción entre los formularios y la base de datos.
Dentro de las vistas también analizamos las maneras de validar la información que llega desde los formularios que operan los usuarios, de manera de mantener coherencia e integridad en la información que se graba en la base de datos.
En el código de las vistas se da una cobertura suficiente a la forma como se interactua con la base de datos en los procesos de inserción de registros, modificación, borrado de registros y sobre todo en las diferentes modalidades de lectura de registros desde la base de datos utilizando las API de interacción que ofrece django para estas operaciones.
Como parte del esfuerzo en explicar el relacionameinto entre las vistas y las plantillas HTML, se han explicado con detenimiento los dos métodos ue pueden ser definidos en los elementos form de las plantillas HTML como ser GET y POST.
Nos esforzamos en explicar todo lo relacionado con los formularios que son los que definen los controles desplegados en las plantillas HTML y que son con los que interactuan los usuarios y que se encuentran grabados en el archivo forms, que es también parte de la estructura de un proyecto django. Estudiamos desde formularios independientes hasta formularios que están apoyados en los modelos que son las clases de un proyecto django.
Dentro de los conceptos de los formularios también explicamos las formas de validación de la información que registra el usuario en los controles de los formularios como una segunda opción de validación antes de ser enviados a la base de datos y poder mantener la coherencia e integridad de los datos.
Otro de los aspectos cubiertos por el curso es el de la administración de las diferentes formas como django maneja los errores que se despliegan en las plantilla HTML y que explican al usuario lo que debe corregir para adecuar el registro de la información a las reglas de negocios planteadas en el proyecto o errores por incoherencias entre lo que se registra y lo que se espera.
Al explicar los tipos de controles que pueden ser colocados en los formularios, también extendemos esta explicación hacia los widgets que son particulzaridades de los controles y que permiten una mejor interacción con los usuarios.
Como parte sustancial dentro del desarrollo de un proyecto, en este caso django, se da una cobertura muy especial a los elementos que constituyen la identificación del proyecto como son los modelos que serían equivalentes a las clases o los objetos dentro del paradigma POO.
Dentro de las definiciones de tipos de propiedades de los modelos, se explican dos maneras en las que estas propiedades pueden relacionar dos modelos como ser la relación OneToOne y la relación ForeignKey.
Se explican los diferentes tipos de propiedades que pueden ser definidas para un modelo y además se explica el relacionamiento ORM entre estas propiedades y los campos de las tablas de la base de datos, de manera que se comprenda como django maneja esta relación independientemente del motor de base de datos que se instale.
El curso cubre la mayor parte de los elementos que forman todo el esquema de seguridad que ofrece django y que está formado por vistas, formularios, modelos y plantillas HTML de manera de adaptarlo al desarrollo del proyecto del curso y así dotar de todo el esquema de seguridad de acceso, identificación y niveles de autorización al proyecto.
Paralela a la conceptualización de los modelos, está la explicación de los conceptos de las clases en Python. Esto permite comprender mucho mejor el funcionamiento de los modelos dentro de un proyecto django.
Como un componente muy importante en todo el proceso de desarrollo del proyecto del curso, se explican con muchos ejemplos, dos elementos fundamentales del lenguaje Python como ser, los diccionarios y las listas, que son esenciales para el desarrollo eficaz de un proyecto django.
En cuanto a la tecnologia CSS se tiene una cobertura amplia y sostenida a lo largo del proyecto de gran parte de las formas como es posible identificar a los elementos dentro de una plantilla HTML de manera de poder aplicar sobre stos elementos, los estilos. Esta cobertura abarca a:
Selectores de pseudo clase
Selectores de atributo class
Selectores de atributo ID
Selectores de estructura
Selectores de elementos
Conceptos ::after y ::before
Estilización de los elementos link
Si bien, CSS es muy extenso, se han considerador muchos parametros de estilización que son los requeridos por el proyecto esperando que los que no se vieron puedan ser aprendidos y sobre todo, comprendidos con la base entregada en el curso.
Para el modelado de las platillas HTML se explican los conceptos de Flex y Grid que son elementos nuevos en CSS y que son la base para el desarrollo de Bootstrap.
Se da una cobertura a las tres formas en las que se pueden poner los estilos a disposición de las plantillas HTML.
De la misma manera se explican las tres maneras en las que se pueden utilizar las fuentes (fonts) como parte del modelado de las plantillas HTML y que incluye además @fontface que es la forma como utilizar fuentes de las cuales se tienen los archivos .ttf.
Damos una cobertura especial a la libreria ckeditor que es la que maneja el control WYSIWYG y hablamos de su configuración en el archivo settings.
Se hace mucho énfasis en todo lo relacionado con la reutilización de código, tanto en las vistas como el las plantillas HTML, de manera de ayudar a optimizar el mantenimiento de un proyecto django.
Dentro del curso también se utilizan los controles HTML de elementos media, que permiten desplegar videos, audio y archivos con formato propio como ser PDF o Word.
El curso cubre totalmente la instalación del proyecto en un hosting externo (pythonanywhere) y explica paso a paso los cambios y adecuaciones que se hacen al proyecto desarrollado en nuestro servidor local, para hacerlo visible y obtener la misma funcionalidad en el ciber espacio.
El punto culminante del curso es la utilziación de Bootstrap para adecuar el despliegue de los diferentes módulos del proyecto a dispositivos de distintas resoluciones como se móbiles, tablets, laptops o desktops. Esto se ha denominado Proyecto Responsive.
Durante todo el proyecto nos hemos esforzado en reiterar conceptos de paginación, relacionamiento entre elementos del framework de django, hemos explicado con detalle aspectos como la versatilidad de django de organizar un proyecto adecuándose a las necesidades y estilos de cada desarrollador. Se ha trabajado de forma muy extensa con las plantallas HTML como elementos fundamentales del patrón de diseño de django MTV.
En general se ha codificado de una manera muy extensa para llegar a conseguir el resultado que se espera en el curso, es decir, la construcción de un proyecto completo y funcional en django. Hay gran cantidad de código y se tienen codificados aspectos relacionados con el funcionamiento especifico del proyecto asi como código de apoyo que ayuda a la automatización y a adquirir la habilidad de memorizar y comprender los términos y funciones del lenguaje Python.