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 鈥渆ncuetas鈥 necesitar茅 una ruta 鈥渆ncueta/鈥 o una ruta 鈥渆ncuesta/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