Es muy buena práctica empezar correctamente utilizando la función include para la lectura de las urls de cada aplicación. En distintos cursos de Django en ocasiones no lo hacen así. ¡Muy bien!
Introducción
Bienvenido al desarrollo backend con Python
¿Qué es Django?
Comenzando a programar en Django
Instalación de Django
Explorando los archivos que creó Django
El servidor de desarrollo
Nuestro primer proyecto: Premios Platzi App
Nuestro primer proyecto: Premios Platzi App 2
Ajustando el archivo settings.py
Models
¿Qué es ORM? ¿Qué es un modelo?
Creando un diagrama entidad-relación para nuestro proyecto
Creando los modelos Question y Choice
Interactive Shell
La consola interactiva de Django
El método __str__
Filtrando los objetos creados desde la consola interactiva
El método filter
Accediendo al conjunto de respuestas
Django Admin
El administrador de Django
Views
¿Qué son las views o vistas?
Creando vistas para la aplicación
Templates de Django
Creando el template del home
Elevando el error 404
Utilizando la etiqueta url para evitar el hard coding
Forms
Formularios: lo básico
Creando la vista vote
Creando la vista results
Generic Views
Generic Views
Implementando generic views en la aplicación
Conclusiones
Aprendiste mucho, pero, ¿estás listo para pasar al siguiente nivel?
Crea una cuenta o inicia sesión
¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera
Aportes 25
Preguntas 0
Es muy buena práctica empezar correctamente utilizando la función include para la lectura de las urls de cada aplicación. En distintos cursos de Django en ocasiones no lo hacen así. ¡Muy bien!
python3 manage.py startapp polls
No sé ustedes pero con estas explicaciones Django comienza a gustarme más
Introduciéndonos al archivo views. py que significa vista.
**Django ** es conocido como un Framework MTV. En el patrón de diseño MTV.
Model (Modelo), la capa de acceso a la base de datos.
Esta capa contiene toda la información sobre los datos. Son los archivos models. py en cada aplicación
Template (Plantilla): la capa de presentación. Esta capa contiene las decisiones relacionadas a la presentación de los datos. serían nuestros archivos html
View (Vista): la capa de la lógica de negocios. Esta capa contiene la lógica que accede al modelo y la delega a la plantilla apropiada. Podemos referirnos a ella como un puente entre la obtención de datos y la presentación de los mismo. (Entre el modelo y la plantilla)
Son los archivos views. py de cada aplicación 😉
Pero django sigue el patrón MVC
Genial Facundo, acabo de entender finalmente la logica de Django, no habia podido comprenderlo
Hice el curso django que estaba antes en platzi y, lastimosamente, hizo no me gustara Django. Las explicaciones de Facundo, como siempre muy claras, ayudan a que te guste Django porque le entiendes.
/platzi_awards_app$ tree
.
├── db.sqlite3
├── manage.py
├── platzi_awards_app
│ ├── 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
│ └── wsgi.py
└── polls
├── 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
└── views.py
5 directories, 22 files
Es una buena práctica utilizar el método include para llevar una buena modularización del proyecto
|
| Aqui les dejo el dibujo del profe
Estuve mucho tiempo viendo porque diablos tiraba este error
ModuleNotFoundError: No module named 'pools'
El módulo se llamaba polls
no pools
F
¡Excelente profesor!
No olviden que premiosplatziapp es donde está la información general del proyecto. Por tanto, tiene sentido incluir (con include) los archivos de url de las demás aplicaciones (app.urls). En las apps, vas a crear siempre un archivo de urls y es aquí donde quedaran plasmadas las urls especificas de cada app.
Si no te sale el archivo db.sqlite3
no te preocupes mas adelante se hablara sobre las migraciones pero para que la puedas ver desde ya el archivo
ejecuta el siguiente comando en tu terminal:
python3 manage.py migrate
Por si a alguien le interesa saber el proceso que hace Django para procesar una request, aquí pueden enterarse.
Archivos urls(.)py
.
Sirven para definir cada una de las URLs que tendrá nuestro sitio web.
.
El archivo url(.)py está presente en la carpeta del proyecto (Paquete principal) y en cada aplicación, y estos tienen funcionalidades diferentes pero trabajan en conjunto.
.
El archivo url(.)py de la carpeta del proyecto, debe contener un include de cada archivo url(.)py de cada aplicación. Ejemplo:
urlpatterns = [
path('admin/', admin.site.urls),
path('polls/', include('polls.urls'))
]
Como se puede ver, se está haciendo un include de polls.urls, el cual es el archivo de urls(.)py de la aplicación polls.
.
El archivo url(.)py de cada aplicación, debe contener un listado de todas las URLs que usará su respectiva aplicación y cada una debe invocar a una función especifica que manejará toda la lógica lo relacionada a dicha URL(página). Estas funciones se ubicarán en el archivo views(.)py, archivo que tendrá toda la lógica de la aplicación (controlador), ejemplo:
urlpatterns = [
path('', views.index, name='index')
]
views.index, views es el archivo views(.)py e index es la función a invocar.
.
Cada vez que se crea una aplicación se entiende que este tendrá sus propias URLs.
.
Ejemplo, si creo una aplicación “encuetas” necesitaré una ruta “encueta/” o una ruta “encuesta/resultados”.
El archivo views en nuestras aplicaciones lo usaremos para darle la lógica a nuestra aplicación.
Es muy importante entender el concepto de views, para posteriormente poder relacionarla con los templates y los modelos, las views determinan la lógica de funcionamiento de cada una de nuestras aplicaciones al interior del proyecto !
Excelente explicación Facu!
Excelente curso, además Facundo enseña muy bien. Muy metódico, me gusta eso. Saludos.
Esto fue lo que entendí y lo escribí en el siguiente texto, alguien puede decirme si hay alguna falla en la lógica?
Entonces lo que acabamos de hacer es agregar un Hello World a la aplicación pools pero sin olvidar agregar esta a la lista de URLs del proyecto, sin embargo, aún falta crear el archivo URLs de la aplicación, la cual llevará dentro las vistas de dicha aplicación llamando al archivo
views.py
de la aplicación.
Por lo tanto, lo que hicimos fue configurar unulrs.py
del proyecto y uno para cada una de sus aplicaciones, los cuales se agregan al del proyecto para poder así llamar a las URLs de la aplicación a partír de el que lo preceda
No conozco mucho de access pero alguna vez escuche que existia un comand que se llamaba go to. y es como para saltarse a una linea de codigo especifica, entiendo que esto es lo mismo. estamos en urls(mainApp) y nos saltamos a las diferentes funciones urls(pollsApp). cada paso y aque lugar llegar.
Facundo, podrias utilizar la consola de VScode para hacer evitar el cambio de pantallas.
from . import views
El punto indica que el paquete esta dentro de la misma carpeta en donde tengo el actual archivo que estoy codeando.
Excelente usar include desde el comienzo la mayoría de curso lo abordan hasta el final, causando confusión.
Ctrl
+ .
para abrir las sugerencias de VSCode
y realizar imports automáticamente
Para iniciar el sistema de control de versiones:
git init
**Para crear un nuevo proyecto en Django:**
django-admin startproject premiosplatziapp
> Siempre es bueno agregarle la palabra "app" al final para diferenciarla de la carpeta del proyecto.
.
**Crear archivo ".gitignore" desde la consola**
touch .gitignore
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.