DJANGO DESENCADENADO - CLASE 1

INTRODUCCIÓN A DJANGO

BIENVENIDOS AL CURSO DE DJANGO!

 

Introducción a Django:

 

¿Qué es Django y para qué se utiliza?

 

Bien, para comenzar la clase sobre Django, podemos iniciar con una breve introducción a lo que es Django y para qué se utiliza.

 

Django es un marco (o “framework”) de desarrollo web de código abierto escrito en Python. Se utiliza para crear aplicaciones web de alta calidad y complejas de manera rápida y eficiente. Un marco de desarrollo proporciona una estructura y un conjunto de convenciones que te ayudan a desarrollar aplicaciones de manera más rápida y consistente. Incluye una serie de componentes que podés utilizar para construir una aplicación, como un sistema de gestión de bases de datos, un sistema de plantillas para la presentación de datos, y un conjunto de herramientas de administración para facilitar el desarrollo y el mantenimiento de la aplicación.

 

Características y ventajas de Django como marco de desarrollo web.

 

Algunas de las características y ventajas de Django como marco de desarrollo web son:

 

  • Es un marco de desarrollo completo que incluye todas las herramientas necesarias para crear una aplicación web, desde el manejo de bases de datos hasta el despliegue en servidores.

  • Es fácil de aprender y usar, con una curva de aprendizaje relativamente baja.

  • Ofrece una gran cantidad de características y herramientas integradas que ayudan a agilizar el desarrollo de aplicaciones web, como el sistema de plantillas y la gestión de formularios.

  • Es altamente escalable, lo que permite a las aplicaciones creadas con Django manejar un alto tráfico y crecer de manera eficiente.

 

Ejemplos de sitios web creados con Django.

 

Algunos ejemplos de sitios web creados con Django son:

  • Instagram

  • Pinterest

  • The Washington Post

  • Mozilla

  • Bitbucket

Estos son solo algunos ejemplos, pero hay muchos más sitios web populares creados con Django.

Conceptos básicos de diseño web:

Antes de entrar en detalles sobre Django, es importante tener una comprensión general de cómo funciona una página web y algunos conceptos básicos de diseño web.

 

Una página web es un documento que se encuentra en internet y al que se puede acceder a través de un navegador web como Google Chrome o Mozilla Firefox. Esta página puede contener texto, imágenes, videos, enlaces y otros contenidos que se muestran en el navegador.

 

Las páginas web funcionan gracias a una combinación de lenguajes de programación como HTML, CSS y JavaScript.

 

HTML (HyperText Markup Language) es el lenguaje utilizado para estructurar el contenido de una página web. Se utiliza para definir la estructura básica de una página web, como títulos, párrafos, enlaces y otros elementos.

 

CSS (Cascading Style Sheets) es el lenguaje utilizado para dar estilo y diseño a una página web. Se utiliza para definir el diseño y estilo de una página web, como colores, tipografías, tamaños de fuente y otros aspectos visuales.

 

JavaScript es un lenguaje de programación que se utiliza para agregar interacción y funcionalidades dinámicas a una página web. Con JavaScript, es posible crear elementos interactivos.

 

Pero no te preocupes que no hace falta por el momento que domines todos estos lenguajes, alcanza con que sepas que existen. Django va a sernos de utilidad para sacarles provecho sin necesidad de entenderlos a fondo.

 

Preparándonos para crear un proyecto: el IDE.

 

Antes de empezar a trabajar vamos a elegir un IDE. Pero ¿qué es un IDE?

 

Un Integrated Development Environment (IDE) es una herramienta de software que proporciona un entorno de desarrollo integrado para crear, depurar y probar aplicaciones. Es una plataforma que te permite escribir, editar, y depurar código de manera más eficiente.

 

Los IDEs suelen incluir una variedad de herramientas y características para ayudar en el desarrollo, como:

 

  • El resaltado de sintaxis para diferentes lenguajes de programación.

  • Auto-completado de código y sugerencias.

  • Depurador para encontrar y solucionar errores en el código.

  • Integración con control de versiones.

  • Acceso a la línea de comando directamente desde el IDE.

  • Integración con herramientas de construcción.

 

Al elegir un IDE, es importante considerar las necesidades específicas del proyecto y el lenguaje de programación que se está utilizando. Por ejemplo, si estás trabajando en un proyecto de Python y Django, nuestra opción preferida es PyCharm. Se trata de una excelente opción debido a su soporte completo para el lenguaje Python y su integración nativa con el framework de Django. Además, PyCharm tiene una interfaz intuitiva y un conjunto completo de herramientas para el desarrollo de aplicaciones web.

 

Algunas de las cosas que PyCharm puede hacer por vos son: mostrarte el código con colores diferentes para que sea más fácil de leer, ayudarte a escribir código más rápido con sugerencias de código y automatizaciones, y ayudarte a encontrar errores en tu código antes de que lo ejecutes.



Configuración de PyCharm:

 

nos enfocaremos en cómo instalar la versión Community Edition de PyCharm en un equipo con sistema operativo Windows.

Para instalar PyCharm Community Edition en Windows, primero debes ir a la página de descargas de PyCharm en el sitio web oficial: https://www.jetbrains.com/pycharm/download/

Una vez en la página, debes seleccionar la versión Community Edition y el sistema operativo Windows. Luego, deberás hacer clic en el botón de descarga para comenzar a descargar el archivo de instalación.

Una vez que la descarga esté completa, debes ejecutar el archivo de instalación descargado haciendo doble clic en él. Se abrirá un asistente de instalación que te guiará a través del proceso de instalación.

Siga las instrucciones en pantalla, aceptar los términos y condiciones, seleccionar la ruta de instalación y opcionalmente crear un acceso directo en el escritorio.

Una vez que se complete el proceso de instalación, PyCharm estará listo para usar. Puedes abrirlo desde el menú de inicio de Windows o desde el acceso directo en el escritorio (si lo creaste)

Es importante mencionar que PyCharm requiere una versión compatible de Python ya instalada en tu sistema, ya que es un entorno de desarrollo para ese lenguaje. Si no tienes una versión de Python instalada en tu sistema, tendrás que descargar e instalar una antes de poder usar PyCharm.




  1. Abra una consola o terminal y asegúrese de tener instalado pip, el administrador de paquetes de Python. Puede verificar si lo tiene instalado ejecutando el comando "pip -V". Si no lo tiene instalado, puede instalarlo ejecutando "python -m ensurepip --upgrade" o descargando e instalando pip desde https://pip.pypa.io/en/stable/installing/.

  2. Una vez que tenga pip instalado, puede instalar Django ejecutando el comando "pip install Django". Esto instalará la última versión estable de Django disponible en PyPI (Python Package Index).

  3. Una vez que Django esté instalado, puede crear su primer proyecto ejecutando el comando "django-admin startproject nombre_proyecto". Reemplace "nombre_proyecto" con el nombre que desee para su proyecto. Esto creará una nueva carpeta con el mismo nombre que su proyecto y creará una estructura de archivos y carpetas básica para su proyecto Django.

  4. Una vez que se haya creado el proyecto, puede iniciar el servidor web de desarrollo ejecutando el comando "python manage.py runserver". Esto iniciará el servidor web de desarrollo en el puerto 8000 de su máquina local. Puede acceder a la página inicial predeterminada de Django en su navegador web escribiendo "http://localhost:8000" en la barra de direcciones.

 

LAS HERRAMIENTAS DE ADMINISTRACIÓN

 

Una cosa que me llamó la atención la primera vez que usé Django es la posibilidad de usar comandos que ejecutan tareas que nos ahorran la necesidad de escribir código o que manipulan el código por nosotros. 

 

Las herramientas de administración de Django son un conjunto de comandos que puedes utilizar para realizar tareas comunes de administración de una aplicación Django, como crear un proyecto, generar migraciones, crear superusuarios, entre otras.

 

Para utilizar las herramientas de administración de Django, debes ejecutar el comando python manage.py seguido del nombre de la herramienta de administración que deseas utilizar. Por ejemplo, para crear un proyecto Django, puedes ejecutar el comando python manage.py startproject nombre_del_proyecto.

 

Aquí hay algunos ejemplos de herramientas de administración de Django y cómo se utilizan:

 

startproject: este comando se utiliza para crear un proyecto Django. Por ejemplo: python manage.py startproject nombre_del_proyecto.

 

startapp: este comando se utiliza para crear una aplicación Django. Por ejemplo: python manage.py startapp nombre_de_la_aplicación.

 

makemigrations: este comando se utiliza para generar las migraciones necesarias cuando cambias el modelo de datos de Django. Por ejemplo: python manage.py makemigrations.

 

migrate: este comando se utiliza para aplicar las migraciones a la base de datos. Por ejemplo: python manage.py migrate.

 

createsuperuser: este comando se utiliza para crear un superusuario en Django. Por ejemplo: python manage.py createsuperuser.

 

LA TERMINAL

 

Una pregunta que todos nos hicimos alguna vez cuando fuimos principiantes es ¿Por qué usar la terminal? ¿Por qué someterse a semejante tortura? En esta sección voy a hacer una breve defensa y explicación de la necesidad de amigarse con este entorno que a menudo provoca miedo.

 

La terminal es una aplicación que te permite interactuar con tu sistema operativo a través de líneas de comando en vez de a través de una interfaz gráfica de usuario (GUI). Es una herramienta muy útil para realizar tareas avanzadas y automatizar procesos, ya que puedes escribir scripts que realicen tareas complejas de forma rápida y precisa.

 

Aunque la terminal puede parecer intimidante para aquellos que nunca la han utilizado, en realidad es una herramienta muy poderosa que puede ayudarte a hacer cosas que no son posibles de otra manera. Aquí hay algunas de las principales ventajas de utilizar la terminal:

 

Mayor productividad: la terminal te permite realizar tareas de forma más rápida y eficiente, ya que no tienes que abrir aplicaciones o navegar por menús para encontrar lo que necesitas. Puedes utilizar comandos cortos y específicos para realizar tareas precisas.

 

Mayor control: la terminal te da acceso directo al sistema operativo y te permite realizar tareas que no están disponibles a través de la GUI. Por ejemplo, puedes utilizar la terminal para acceder a archivos ocultos o modificar la configuración del sistema.

 

Mayor flexibilidad: la terminal te permite realizar tareas de forma personalizada y adaptarlas a tus necesidades específicas. Puedes utilizar scripts para automatizar tareas complejas o crear tus propios comandos para hacer cosas que no están disponibles de otra manera.

 

Mayor portabilidad: la terminal es una aplicación que está disponible en todos los sistemas operativos, por lo que puedes utilizarla en cualquier ordenador o servidor. Esto es muy útil si necesitas realizar tareas en múltiples plataformas o acceder a sistemas remotos.



LA ESTRUCTURA DE ARCHIVOS DE DJANGO

 

Como ya se dijo, ejecutar el comando "django-admin startproject nombre_proyecto" crea una carpeta y la llena de archivos. Como podrás suponer, estos archivos van a tener diferentes funciones. Más adelante vamos a explicar estas funciones en profundidad, pero por el momento vamos a dar un pequeño panorama de la típica estructura de datos de Django. Una vez más, no te preocupes por entenderlo todo. Por el momento no hace falta entender mucho, sólo seguir las instrucciones con paciencia.

 

 

mi_proyecto/
├── manage.py
└── mi_proyecto/
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
    ├── app1/
        ├── __init__.py
        ├── admin.py
        ├── apps.py
        ├── migrations/
        ├── models.py
        ├── tests.py
        └── views.py



  • El archivo manage.py es un script que te permite interactuar con el proyecto desde la línea de comandos. Lo vas a usar muchísimo. Ya te vamos a explicar cómo.

  • La carpeta mi_proyecto/ es el nombre de tu proyecto y contiene la configuración del proyecto.

  • El archivo mi_proyecto/__init__.py es un archivo vacío que indica que la carpeta mi_proyecto/ es un módulo Python. Sí, un archivo vacío parece no tener sentido. Olvidate de él y seguí con tu vida.

  • El archivo mi_proyecto/settings.py contiene la configuración del proyecto. Este es el más importante dentro de esta carpeta.

  • El archivo mi_proyecto/urls.py contiene las rutas URL del proyecto.

  • El archivo mi_proyecto/wsgi.py es un archivo que se utiliza para desplegar el proyecto en un servidor WSGI

  • La carpeta app1/ es una aplicación que forma parte del proyecto. Puede haber más de una (todas las que quieras). Cada aplicación tiene su propia carpeta con una estructura similar.

 

Pasemos a la carpeta app:

 

 

  • El archivo app/__init__.py es un archivo vacío que indica que la carpeta app/ es un módulo Python.

  • El archivo app/admin.py define una clase ModelAdmin para cada modelo de la aplicación, que se utiliza para personalizar la forma en que se muestran los modelos en el panel de administración de Django.

  • El archivo app/apps.py contiene la configuración de la aplicación, como el nombre de la aplicación y la configuración de la traducción.

  • La carpeta app/migrations/ almacena las migraciones, que son archivos que controlan los cambios en la base de datos del proyecto.

  • El archivo app/models.py define los modelos de la aplicación, que representan los datos que se almacenarán en la base de datos.

  • El archivo app/tests.py contiene pruebas unitarias para la aplicación.

  • El archivo app/views.py contiene las vistas de la aplicación, que son funciones que manejan las solicitudes HTTP y devuelven las respuestas HTTP.

 

Es importante tener en cuenta que esta es una estructura típica, pero podés personalizarla según tus necesidades. Por ejemplo, podés tener varios archivos de vistas en lugar de uno solo o agregar otros archivos para dividir la lógica de la aplicación en distintas partes.

 

Vamos a hacer un recorrido por algunos de los archivos de la lista anterior para dejar más en claro para qué sirven.

 

manage.py

 

manage.py es una utilidad de línea de comandos que viene con Django. Se utiliza para realizar varias tareas de gestión para un proyecto Django.

 

Aquí hay algunas de las tareas que se pueden realizar con manage.py:

 

  1. Iniciar un nuevo proyecto Django: python manage.py startproject myproject

  2. Ejecutar el servidor de desarrollo: python manage.py runserver

  3. Crear nuevas aplicaciones Django: python manage.py startapp mi_app

  4. Ejecutar migraciones de base de datos: python manage.py migrate

  5. Crear nuevos usuarios de admin de Django: python manage.py createsuperuser

 

manage.py está diseñado específicamente para trabajar con proyectos Django. Se encuentra en el directorio raíz de tu proyecto y se utiliza para establecer el entorno adecuado y ejecutar comandos de Django.

Por ejemplo, si quisieras ejecutar el servidor de desarrollo para tu proyecto Django, usarías el comando runserver de esta manera: python manage.py runserver. Esto iniciará el servidor de desarrollo en la dirección predeterminada (http://127.0.0.1:8000/) y podrás acceder a tu proyecto Django en tu navegador web.

En general, manage.py es una herramienta esencial para la gestión y el trabajo con proyectos Django. Proporciona una serie de comandos que facilitan la realización de varias tareas de gestión y te ayuda a poner en marcha tu proyecto Django de forma rápida y sencilla.

 

settings.py

 

El archivo settings.py es un archivo que contiene la configuración del proyecto o aplicación de Django. Este archivo es muy importante, ya que controla muchos aspectos del comportamiento del proyecto, como la base de datos que se utiliza, la forma en que se manejan las solicitudes HTTP, la configuración de la seguridad y mucho más.

 

Estos son algunos de los aspectos más importantes de la configuración que podés controlar en el archivo settings.py:

 

  • Base de datos: Podés configurar la base de datos que utiliza tu proyecto en Django con las variables DATABASES, DEFAULT_DB_ALIAS y DATABASE_ROUTERS. Por ejemplo, podés utilizar una base de datos relacional como MySQL o PostgreSQL, o una base de datos no relacional como MongoDB.

  • Idioma y zona horaria: Podés configurar el idioma y la zona horaria que se utilizarán en tu proyecto con las variables LANGUAGE_CODE y TIME_ZONE. Esto es útil si querés que tu proyecto esté disponible en diferentes idiomas o si querés que la hora se muestre de acuerdo a una zona horaria específica.

  • Middleware: Podés configurar el middleware que se utilizará en tu proyecto con la variable MIDDLEWARE. El middleware es un conjunto de componentes que se ejecutan en cada solicitud y respuesta HTTP y que pueden modificar el comportamiento del proyecto de diferentes maneras. Por ejemplo, podés utilizar middleware para manejar la autenticación o la protección contra ataques de inyección de SQL.

  • Aplicaciones instaladas: Podés configurar las aplicaciones que se han instalado en tu proyecto con la variable INSTALLED_APPS. Esto es útil si quieres agregar o eliminar aplicaciones de tu proyecto.

  • Autorizaciones y permisos: Podés controlar quién puede acceder a qué partes de tu proyecto con las variables AUTH_USER_MODEL, LOGIN_URL, LOGIN_REDIRECT_URL y LOGOUT_REDIRECT_URL. Por ejemplo, podés utilizar estas variables para controlar quién puede acceder al panel de administración o para redirigir a los usuarios a diferentes páginas después de iniciar sesión o cerrarla.

 

urls.py

 

El archivo urls.py es un archivo que contiene las rutas URL de un proyecto o aplicación de Django. Las rutas URL indican a Django qué vista debe ejecutar para cada “dirección” dentro de la página.

 

Por ejemplo, supongamos que tenés una vista que muestra una lista de artículos en tu proyecto de Django. Podés definir una ruta URL que apunte a esta vista de la siguiente manera:

 

from django.urls import path
from . import views

urlpatterns = [
    path('articles/', views.article_list, name='article_list'),
]

 

En este ejemplo, se ha definido una ruta URL que apunta a la vista article_list en el archivo views.py cuando se accede a la URL /articles/. La función path de Django recibe varios argumentos:

 

  • El primer argumento es la ruta URL. En este caso, es 'articles/', lo que significa que la ruta URL es /articles/.

  • El segundo argumento es la vista que se ejecutará cuando se acceda a la ruta URL. En este caso, es views.article_list, lo que significa que se ejecutará la función article_list del archivo views.py.

  • El tercer argumento es un nombre para la ruta URL. Esto es útil si necesitas hacer referencia a la ruta URL desde otras partes de tu proyecto. En este caso, se le ha dado el nombre 'article_list'.

 

Una vez que has definido tus rutas URL en el archivo urls.py, necesitás incluirlas en el archivo principal urls.py del proyecto para que estén disponibles para todo el proyecto. Para hacer esto, puedes utilizar la función include de Django de la siguiente manera:

 

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('articles/', include('articles.urls')),
]

En este ejemplo, se ha incluido la aplicación articles en el proyecto y se ha definido una ruta URL que apunta a la aplicación con la función include. Esto significa que cuando se accede a la URL /articles/, Django buscará las rutas URL definidas en el archivo articles/urls.py y ejecutará la vista correspondiente.

 

Además de las rutas URL simples que hemos visto hasta ahora, Django también permite utilizar rutas URL con expresiones regulares y rutas URL con nombre.

 

Las expresiones regulares son patrones que usamos para encontrar una combinación específica de caracteres dentro de una cadena de texto. Son útiles para definir patrones más complejos o repetitivos, mientras que las rutas URL con nombre permiten darle un nombre a cada ruta, lo que puede ser útil para hacer referencia a ellas en otras partes de la aplicación. 

 

Por ejemplo, en lugar de tener que escribir la URL completa en un enlace HTML, podés usar el nombre de la ruta y Django se va a encargar de insertar la URL completa en el enlace. Esto puede ser útil si decidís cambiar la estructura de tus URLs más adelante en el proyecto, ya que solo vas a necesitar cambiar la definición de la ruta en tu archivo urls.py en lugar de tener que cambiar todas las referencias a la URL en tu código. Además, las rutas URL con nombre también pueden ser más fáciles de leer y entender para otros desarrolladores que estén trabajando en el proyecto.

 

admin.py

 

admin.py es un módulo de Python que se incluye en los proyectos Django para permitir configurar el comportamiento de la interfaz de admin de Django. La interfaz de admin de Django es una interfaz basada en web que proporciona una forma de agregar, editar y eliminar datos en la base de datos de tu proyecto Django. Es una interfaz generada automáticamente que se construye sobre el ORM (Object-Relational Mapper) de Django y se utiliza para gestionar los datos de tu proyecto Django.

 

En admin.py, podés registrar modelos con la interfaz de admin de Django para gestionarlos a través de la interfaz web. Por ejemplo, si tenés un modelo Blog en tu proyecto Django podés registrarlo en admin.py de esta manera:

 

from django.contrib import admin
from .models import Blog

admin.site.register(Blog)

Esto te permitirá ver y gestionar el modelo Blog a través de la interfaz de admin de Django. También  podés personalizar la forma en que se muestra el modelo en la interfaz de admin especificando varias opciones en la función register().

 

En general, admin.py es una parte importante de los proyectos Django que te permite gestionar tus datos a través de la interfaz de admin de Django. 

 

 

Proporciona una forma conveniente de agregar, editar y eliminar datos en la base de datos de tu proyecto y es una herramienta esencial para gestionar tu proyecto Django.

 

models.py

 

El archivo models.py en Django es un lugar donde se define la estructura de los datos de una aplicación y la forma en que se relacionan. En este archivo se crean clases que representan tablas en la base de datos y sus campos como “atributos” de clase. Es decir, es una forma de comunicarse con la base de datos.

 

Por ejemplo, si tenés una aplicación de blog, podrías tener un modelo para representar los artículos del blog. El archivo models.py podría contener algo así:

 

from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    published_date = models.DateTimeField()
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
    tags = models.ManyToManyField(Tag)

 

En este ejemplo, se ha definido un modelo Article con cinco campos: title, content, published_date, author y tags. Cada uno de estos campos es un atributo de clase que representa una columna en la tabla de la base de datos correspondiente al modelo Article.

 

Django proporciona varios tipos de campos, como CharField, TextField, DateTimeField, ForeignKey y ManyToManyField, que se pueden utilizar para definir la estructura de los datos de una aplicación. Más adelante voy a pasarte más información de cada uno de estos campos. Por el momento, alcanza con entender que se trata de definiciones sobre los tipos de datos que van a conformar una base de datos.

 

Una vez que se ha definido un modelo, Django proporciona automáticamente una interfaz para crear, leer, actualizar y eliminar objetos de la base de datos.

 

En resumen, el archivo models.py es una parte importante de una aplicación Django ya que define la estructura de los datos y cómo se relacionan entre sí.

 

 

 

 

 

  • REGISTRATE PARA VER LOS CONTENIDOS EXTRA
    • DJANGO DESENCADENADO - CLASE 1
      (currently viewing)
    • DJANGO DESENCADENADO - TAREA - CLASE 1

    • DJANGO DESENCADENADO - CLASE 2

    • DJANGO DESENCADENADO - CLASE 3

    • DJANGO DESENCADENADO - CLASE 4.1

    • DJANGO DESENCADENADO - CLASE 4.2

    • DJANGO DESENCADENADO - CLASE 4.3

    • DJANGO DESENCADENADO - CLASE 5

    • DJANGO DESENCADENADO - CLASE 5.2

    • DJANGO DESENCADENADO - CLASE 6

    Become a Patron!