Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Curso Básico de Django

Curso Básico de Django

Facundo García Martoni

Facundo García Martoni

Nuestro primer proyecto: Premios Platzi App 2

7/29
Recursos

Aportes 25

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

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 😉

Fuente

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 un ulrs.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