No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

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 142

Preguntas 53

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

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 “path(‘hello-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 ‘django.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.

Pueden crear el proyecto de Django directamente desde un contenedor sin necesidad de crear máquinas virtuales y sin necesidad de instalar las librerías en tu máquina local, les muestro como:

Para crear un proyecto Django desde cero utilizando Docker Compose y asegurarte de que los archivos sean visibles tanto en el contenedor como en tu directorio local de la máquina anfitriona, puedes seguir estos pasos:

Asegúrate de tener Docker y Docker Compose instalados en tu máquina.

Crea un nuevo directorio en tu máquina anfitriona donde deseas almacenar el proyecto Django.

Dentro de ese directorio, crea un archivo llamado Dockerfile con el siguiente contenido:

# Usa la imagen oficial de Python como base
FROM python:3.x

# Establece el directorio de trabajo en /app
WORKDIR /app

# Instala las dependencias de Django
RUN pip install Django

# Copia todo el contenido del directorio actual al contenedor en /app
COPY . /app

Crea un archivo llamado docker-compose.yml en el mismo directorio con el siguiente contenido:

version: '3'
services:
  web:
    build: .
    ports:
      - "8000:8000"
    volumes:
      - .:/app
    command: python manage.py runserver 0.0.0.0:8000

Abre una terminal y navega al directorio donde creaste estos archivos (Dockerfile y docker-compose.yml).

Ejecuta el siguiente comando para construir la imagen del contenedor:

docker-compose build

Una vez que la imagen se haya construido, puedes crear un proyecto Django dentro del contenedor. Ejecuta el siguiente comando para abrir una terminal dentro del contenedor:

docker-compose run web bash

Dentro del contenedor, puedes crear un proyecto Django como lo harías normalmente, por ejemplo:

django-admin startproject platzigram .

Ahora puedes salir de la terminal del contenedor.

De vuelta en tu máquina anfitriona, verás que los archivos del proyecto Django se encuentran en el directorio local que creaste inicialmente.

Puedes ejecutar el servidor Django desde el contenedor con el siguiente comando:

docker-compose up

Los cambios que realices en los archivos desde tu directorio local serán visibles en el contenedor, y viceversa. Esto te permitirá desarrollar tu proyecto Django dentro de un contenedor Docker de manera efectiva.

love it

Que emoción…

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

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 “path” no me aparece.

En vez de ello use el ejemplo con el módulo “url” 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 “django-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 “urlpatterns” entre usar el método “path” y el “re_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.

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?