Creaci贸n del proyecto Platzigram / Tu primer Hola, mundo! en Django

5/37
Recursos

pip freeze --> para validar las extensiones instaladas.
Django-admin startproject Platzigram . --> para la creaci贸n del proyecto.

Reto de la clase:

Crea tu primer Hola mundo en Django.

Aportes 139

Preguntas 52

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

Si quieren acceder al proyecto desde otro dispositivo en la red local:

Si por ejemplo la IP V4 de la computadora donde est谩 el proyecto es,
192.168.2.101

1)- Configurar el campo ALLOWED_HOSTS:

ALLOWED_HOSTS = ['192.168.2.101']

2)- Correr el proyecto con el comando:

python manage.py runserver 0.0.0.0:8000

3)- Luego en el navegador de un dispositivo dentro de esa red:

http://192.168.2.101:8000/

Excelente detalle el de explicar linea por linea todos y cada uno de los archivos creados por default!!!
normalmente nadie se esfueza por ser as铆 de espec铆fico!
Saludos Pablo!!!

Archivos creados:
init.py 鈥> Declarar platzigram como un m贸dulo de python
settings.py --> Define las configuraciones del proyecto
urls.py 鈥> Archivo principal: punto de entrada para peticiones que lleguen al proyecto
wsgi.py --> Archivo usado durante deployment para producci贸n
manage.py 鈥> no se va a tocar, pero con este se interactuar谩 en el desarrollo(interfaz sobre django admin)

Hola, les dejo mis apuntes.
Si hubiera alg煤n error por favor comp谩rtanlo, les agradecer铆a mucho. 馃槉

Lo resolvi en 10 minutos para windows con esta excelente guia: http://blog.fixter.org/instalando-y-ejecutando-django-en-windows/

hago la prueba tal cual para el hola mundo, pero cuando refresco la pagina, me da error 404. 127.0.0.1:8000 pero despues de un rato me puse a ver que cuando el profesor refresca enseguida le copia a la url otro pedazo 127.0.0.1:8000/hello-world/.

hago lo anterior de adicionarle esto a la url. y me funciona perfecto. mi pregunta es esta bien que sea asi cuando el profesor recarga la pagina veo que tiene el pedazo en la url. o es que directamente en la url 127.0.0.1:8000 debe de automaticamente cargar esa url

mi recomendacion es que usen el git bash para instalar todo lo de este curso y cualquier otro de los cursos de platzi ya que usa los comandos que usan en los videos

En Git Bash estuve recibiendo el error al ejecutar

$ python3 manage.py
bash: /c/Users/JoseD/AppData/Local/Microsoft/WindowsApps/python3: Permission denied

Lo solucion茅 usando py en vez de python3

$ py manage.py

La causa seg煤n leo es un conficto originado por la Microsoft Store:

Cosas que suceden cuando se hace un request de http:

  1. django abre settings, busca la constante ROOT_URLCONF, su valor generalmente es [nombre del proyecto].urls que es el archivo de urls que se crea autom谩ticamente cuando se crea el proyecto

  2. Ya en el archivo de urls va a la variable urlpatterns, esta contiene el path (por ejemplo 鈥減ath(鈥榟ello-word/鈥, hello_word)鈥) dentro de esta esta la url la funcion que ejecuta
    *hello-word/ es la url es lo que se pone en el navegador
    *hello_word es la funcion que se esta llamanado para que se ejecute cuando se solicita esa url

-IMPORTANTE: django evalua la variable urlpatterns en orden, del primer path al ultimo buscando el match, eso quiere decir que si se tienen casos especiales que tienen que ser evaluados antes
para evitar que entre de pronto en una url equivocada, estos se deben poner primero

Me gusta que expliquen cada detalle!, bien platzi 馃槂

EN WINDOWS, para abrir el proyecto en VS Code se pone en el cmd:

(.env) C:\Users\carol\Desktop\platzigram>code .



Si ya tienen activado el venv pueden usar solamente python en lugar de python3 en todos los comandos que tecleen en consola.

Tengo windows como hace para abrir sublime text desde la consola?

Hay algun problema si uso visual studio 2019 para correr DJango?

Hoy descubr铆 algo que para muchos debe ser obvio, es igual de importante o tanto mas, leer la documentaci贸n oficial, como tomar los cursos鈥 en los cursos se ven cosas importantes, pero si se quiere ir a profundidad la documentaci贸n es una herramienta MUY 煤til鈥 se entienden muchas cosas mas y si, aunque tome un poco mas de tiempo, uno se asegura que tiene el conocimiento base para poder entender todo mucho mejor!!

En que se puede realizar el front de un proyecto desarrollado con django

En Django 3 tambi茅n se crea otro archivo, esto es lo que encontr茅:

proyecto/asgi: Un punto de entrada para que los servidores web compatibles con ASGI puedan servir su proyecto, como Node.js u otros.

Excelente explicaci贸n de la estructura del proyecto

ENTORNO VIRTUAL WINDOWS
segu铆 estos pasos.

  1. python -m venv .env
  2. si ya ha respondido la consola con done,
  3. ingreso a la carpeta con el nombre que se creo 鈥.env鈥 cd .env/Scripts
  4. ejecuto el archivo
    activate, inmediatamente inicializa el ambiente virtual tal como al profe!!
    Ej:鈥 E:\CURSO PLATZI\DJANGO\prueba \Script\activate
    Y por fin ingresas al entorno virtual
    (.env) E:\CURSO PLATZI\DJANGO\prueba.env>

Para salir del entorno escribe: deactivate

Tarea:

from django.http import JsonResponse


def hi(request):
    numbers = sorted(request.GET.get('numbers', '0').split(','))
    response = JsonResponse([numbers], safe = False)
    return response

Instalen Django con Docker鈥

Es lo mejor que pueden hacer鈥
https://docs.docker.com/compose/django/

todo muy claro, este man explica bien. a veces pasa por alto cosas que para el por su experiencia son obvias, pero solo es eso.

驴el curso est谩 actualizado a las versiones actuales de django?

WSGI
La interfaz de puerta de enlace del servidor web (WSGI) es una convenci贸n de llamada simple para que los servidores web reenv铆en solicitudes a aplicaciones web o frameworks escritos en el lenguaje de programaci贸n Python.


from django.https import HttpResponse

Tengo error: Unable to import 鈥榙jango.http鈥 pyint(import-error)

驴Por qu茅 sucede? (Es con todos los imports: django.contrib, django.urls y django.http)

Se puede configurar el lenguaje y el timezone.
El lenguaje se pone el codigo del lenguaje y el codigo del pais. En mi caso es:

LANGUAGE_CODE = 'es-co'

Para timezone, se coloca de acuerdo al siguiente patr贸n mostrado:

UTC-2 = 'Etc/GMT+2'
UTC-1 = 'Etc/GMT+1'
UTC = 'Etc/GMT+0'
UTC+1 = 'Etc/GMT-1'
UTC+2 = 'Etc/GMT-2'

Quiere decir, por ejemplo, en mi caso que es Colombia:

TIME_ZONE = 'Etc/GMT+5'

Django es una interface a Python para crear urls y conectar esas urls a l贸gica. Luego crear templates o crear APIs

Path se define la URL de la cual espera que responda algo. Cada que vayamos a localhost/helloworld pase algo, seguido de la vista

Una vista en django puede ser una clase o una funci贸n.

Todas vistas reciben un request.

Para escribir una respuesta http importar from django.http import HttpResponse

https://www.youtube.com/watch?v=fvNooM7MdXs

隆para mi gente de windows! Este tutorial los ayudar谩 mucho.

Perdonad pero quiz谩s para futuros cursos, el maestro podr铆a ir m谩s despacio. Habla y avanza realmente r谩pido

Me parece una buena explicaci贸n, he visto comentarios malos, pero personalmente pienso que ense帽a bastante bien y se nota que tiene amplio conocimiento, tal vez su experiencia hace que no explique ciertas cosas que para 茅l son obvias.

Me gustan las explicaciones de Pablo porque no se sale nada si no es de la documentaci贸n!!
En mi caso me cuesta leer la documentaci贸n porque la mayor铆a est谩 en ingl茅s pero hago el esfuerzo y me motiva ver que Pablo hace toda la referencia y extracci贸n de conocimientos de esta.

creo que es preciso saber que para hacer login, es preciso darle las credenciales primero con

(venv) 位 py manage.py createsuperuser

Excelente clase, este es el principio, emocionado para continuar aprendiendo.

Excelente esta clase explicando el core de Django.

django-admin startproject platzigram . Con este comando crea todo en la carpeta destino

1. el archivo __init__.py indica a Django que tiene que revisar los archivos dentro de la carpeta. 2. el archivo settings.py es el archivo que guarda la configuracion de nuestro proyecto (es uno de los archivos mas importantes). 3. el archivo urls.py guarda las rutas de nuestro proyecto; es aqu铆 donde enlazamos todo. 4. el archivo wsgi.py hace referencia al servidor; ac谩 podremos iniciar el servidor con Django. (Este archivo viene enlazado con settings.py) 5. el archivo manage.py es el intermediario entre nuestros comandos de Django y los archivos de nuestro proyecto. (Ac谩 tambi茅n se enlaza nuestro archivo settings.py)

Se agradece la explicacion detallada de cada archivo generado automaticamente. El que tiene experiencia pasa de largo esos archivos pero para los que estamos aprendiendo es super importante una peque帽a intro. Gracias!

Jaja La verdad no recordaba ese gesto en MacOS para cambiar de ventana como en el que usa en el minuto 11

Este es un buen video para ver la instalaci贸n de Windows por q no es como esta en el curso mirarlo completo y despu茅s si hacer lo del video https://www.youtube.com/watch?v=2go2-ygoDgI

Para reponder a un solicitud http, tenemos que importar de django.http, el HttpResponse, luego podemos utilizar la clase, para devolver algo. Recordando poner el objeto request.

Lo que devuelves en un path, no tiene que ser necesariamente una funci贸n, tambi茅n puede ser una clase.

Cabe aclarar que runserver, es de staticfiles. Indicio que para hacer nuestro testing, no tenemos que ejecutar tal comando.

Manage.py, es una interfaz, entre Django admin y nuestro projecto.

wsgi.py, es el archivo utilizado para hacer nuestro deployment.

dentro de la carpeta del proyecto, tenemos a urls.py que lo que hace es controlar las url y los par谩metros, osea todas las peticiones y nuestro punto de entrada. En 茅l indicamos las ordenes a seguir para manejar las url.

settings.py . es el archivo m谩s importante de Django. Debido que define todas las configuraciones de nuestro proyecto.

No s茅 s铆 es por la versi贸n que estoy usando pero el m贸dulo 鈥減ath鈥 no me aparece.

En vez de ello use el ejemplo con el m贸dulo 鈥渦rl鈥 y me funcion贸 ej ejemplo.

La versi贸n que tengo de Django es 1.11.29

PATH ('nombre-url`, nombre-vista)

.

from django.http import HttpResponse
.
def hello_world(request):
	return Httpresponse('Hello, World')

manage.py es el archivo con el cual vamos a interactuar, para configurar lo que hay dentro de nuestro proyecto con comandos, tambi茅n nos pasa informaci贸n acerca de las aplicaciones instaladas dentro de nuestro Django.

STATIC_URL = cambia la forma en como resulve la url si la petici贸n pide entrar a la carpeta static.

Dentro de la autenticaci贸n por defecto, se tienen: UserAttributesSimilarityValidator. Que verifica la similitud de la contrase帽a con los valores de los usuarios. MinimunLenghtValidator que verifica que la contrase帽a tenga una longitud m铆nima, CommonPasswordValidator, que verfiica si se tiene una contrase帽a muy debil por ser t铆pica y por 煤ltimo el NumericPasswordValidator que valida que no sea 煤nicamente num茅rica.

AUTH_PASSWORD_VALIDATORS = Es la constante que alberga varios dicts con procesos de verificaci贸n.

En la constante DATABASE podemos configurar nuestra variable de entorno. dentro de este solo necesitamos poner la contrase帽a y el lugar donde se guarda nuestra base de datos.

ROOT_URLCONF = dentro de esta, definimos cuales son los archivos principales para las urls o m贸dulo de entrada de URLs

Algunas de las aplicaciones con las que viene Django son: admin , auth, contenttype.

En el anterior curso us谩bamos ./ manage.py en vez de python3 manage.py 驴cu谩l es la diferencia entre ambos?

Recuerdo que el primero es para correrlo como un ejecutable, pero aun as铆 no entiendo la diferencia entre ambos

Una vez que activamos el entorno virtual:

  • Debemos ejecutar django-admin startproject <nombre del proyecto> . en la consola. Con ello incializamos los archivos.

Estructura de archivos:

  1. __init__.py El 煤nico objetivo de este archivo ser谩 declarar nuestro directorio como un m贸dulo de python

  2. setings.py Es el archivo m谩s importante de Django. Define todas las configuraciones de nuestro proyecto.

  3. url.py es nuestro punto de entrada para todas las peticiones de nuestro proyecto.

  4. wsgi.py es el archivo usado para el deployment para producci贸n

  5. manage.py Es un archivo que jam谩s modificaremos, pero interactuaremos con 茅l durante el desarrollo.

驴Puedo conectarme a una base de datos de SQL con Django?

Increible su explicaci贸n, a pesar de mi inexperiencia en desarrollo web, me qued贸 muy claro esta parte

excelente que bien u.u

A mi no me funciona el comando 鈥渄jango-admin startproject platzigram鈥, y no me crea los archivos de python.

驴Por qu茅 no me aparecer谩 por default el archivo manage.py en la carpeta Platzigram? me aparecieron los dem谩s 4 archivos pero ese no. 驴Lo debo crear manualmente?

Hola mundo en Django 馃槃

Que buena clase

Puedo usar sql server 2014 con django?

Para crear un nuevo proyecto en django se usa: django-admin startproject <projectname> .

django-admin startproject platzigram

bien explicado.

Por qu茅 en el minuto 6:37 al hacer ls -al no aparece el ambiente virtual? Deber铆a aparecer porque ha usado -a para ver archivos ocultos. Alguien me lo explica por favor?

tengo una duda, cuando doy python3 merge.py runserver

me arroja un error y me dice que el puerto esta en uso, y cuando voy al localhost:8000 me aparece es un servidor de apache, como lo puedo solucionar?

En windows tuve el problema de que no corr铆a el servidor cuando colocaba:

python3 manage.py runserver

En mi caso no hac铆a nada, lo solucione especificando el puerto as铆:

python3 manage.py runserver 8080

Como se llama el linter que utilizas?

Amigos,
Cuando trate de hacer los pasos para instalar Django en el mac no me dejo crear el proyecto con las carpetas (no me sali贸 el startproject)
Busque por internet y encontr茅 un tutorial mas claro paso a paso se los dejo.

https://www.youtube.com/watch?v=SGapNpG86Mc

Saludos.

digamos que es un ambiente complicado si no se sabe instalar鈥
creo que intal茅 de 0 unas 4 veces el server de pruebas鈥

Muy buena clase

Tengo un error al ejecutar el comando python3 manage.py 驴Por qu茅 me muestra eso?

configuracion entorno virtual:

Correr servidor

Saludos, tengo una duda respecto al 鈥渦rlpatterns鈥 entre usar el m茅todo 鈥減ath鈥 y el 鈥渞e_path鈥 -En que se diferencian? -En que situaciones se deben usar el uno al otro (path or re_path)?

P.D: Soy nuevo en el mundo de Python-Django, espero alguien pueda aclarar mi duda gracias.

Hola, disculpa pero tengo un problema. Cuando ejecuto python3 manage.py runserver este no ejecuta nada

Hola, que IDE est谩s usando, saludos

La explicaci贸n es excelente y clara 馃挌

Tuve que detener el servidor y volverlo a montar al crear el nuevo path porque no me reconocia.
Por si alguien le pasa.

Con django-admin podemos abrir una interfaz en la linea de comandos que nos muestra otros comandos que podemos usar en django.

Con **django-admin startproject <nombre_del_proyecto> . ** podemos crear un nuevo proyecto en el directorio en el que estamos.

Page not found (404) me sale eso, ayuda por favor

Genio! Buen铆sima intro a Django!

Incre铆ble forma de ense帽ar, falta ver m谩s contenido del curso pero as铆 deber铆an ser gran parte del contenido en Platzi.

Alguien sabe si hay el curso de django 3.0 ?

Esto me ayudo 鈥 para los que est谩n trabajando en windows

https://docs.djangoproject.com/es/3.0/intro/tutorial01/

muchachos que trabajan en windows les recomiendo que utilicen una terminal que nos tranforma nuestro sistema windows a linux o mejor podemos ejecutar comandos de linux en windows sin problemas de errores la terminal se llama: hyper les dejo el loink por si alguno les interesa https://hyper.is/ no tienen que preocuparce por windows mientras todo lo ejecuten desde esta terminal.

Podr铆amos trabajar con NoSQL de la misma forma que con SQL?

Cuando hablamos del m贸dulo de Authorization, quiere decir que ya tiene soporte nativo para JWT y Auth2.0?

Recomiendo http://gitignore.io/ para crear el archivo .gitignore de git

veo que la versi贸n de Django que me instal贸 el comando es Django==3.0.6 y el profe tiene la 2.0.7 espero que no ocasione muchos problemas llevar este curso!

Que tan practico es utilizar Django con Mongo?

Si quieren poner su zona horaria lo pueden hacer as铆

TIME_ZONE = 'America/Bogota'

https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

si alguien esta usando windows y les sale que python o pip 鈥渘o se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.鈥 aqui les dejo este blog donde explica como solucionar ese error
https://blog.luchin.cl/2016/01/pythoncomo-solucionar-error-pip-en.html

Que linter esta usando Pablo?