Fundamentos de Django

1

¿Qué es Django?

2

¿Cómo instalar Django?

3

Entendiendo la arquitectura de Django

4

Qué es el patrón MVT (Model, View y Template)

La M en el Patrón: Modelo

5

Introducción a Modelos y Bases de Datos

Manejo Avanzado de Modelos y Bases de Datos

6

Gestión de Modelos y Bases de Datos en Django con SQLite

7

Inserción de Datos con Django

8

Actualización y Eliminación de Datos en Django

Relaciones y Asociaciones entre Modelos

9

Creación y Gestión de Relaciones entre Modelos en Django

10

Relaciones Muchos a Muchos (N:N) en Django

11

Relaciones Uno a Uno (1:1) en Django

12

Queries y Filtros en Django: Optimización y Estrategias Avanzadas

Configuración de URLs y Vistas Avanzadas

13

Gestión de URLs en Django: Configuración, Rutas y Mejores Prácticas

14

Vistas Basadas en Clases en Django

La T en el Patrón: Plantillas o Templates

15

Personalización de Interfaz con Plantillas en Django

Desarrollo de Aplicaciones en Django

16

Configuración del Proyectos en Django

17

Creación del Modelo para la Aplicación 'Products' en Django

18

Cómo Crear Migraciones de Datos en Django

19

Creación de la Aplicación 'Products' con Formularios en Django

20

Integracion de TailwindCSS en Django

21

Django Admin

22

Manejo de Sesiones en Django

23

Manejo de Órdenes en CoffeShop

24

Manejo de Pedidos en CoffeShop

25

Mixings en vistas basadas en clases

26

Agregar productos a la orden

Django Rest Framework

27

Django REST Framework

Despliegue de aplicaciones Django

28

Configurar PostgreSQL en AWS con Django

29

Variables de entorno en Django

30

¿Cómo usar Unit Testing en Django?

31

Debugging en Django

32

Desplegar aplicaciones de Django en AWS

No tienes acceso a esta clase

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

Curso de Django

Curso de Django

Luis Martínez

Luis Martínez

Configuración del Proyectos en Django

16/32
Recursos

Comenzamos la configuración de un proyecto Coffee Shop en Django

¿Cómo crear y activar el entorno virtual?

Para iniciar, nos posicionamos en la carpeta deseada en nuestro editor. Creamos el entorno virtual con:

python -m venv <ruta_donde_guardar>/Coffee_Shop

Activamos el entorno con:

source Coffee_Shop/bin/activate

Verificamos su activación y procedemos a instalar Django:

pip install django

¿Cómo iniciar un proyecto Django?

Creamos el proyecto utilizando el comando:

django-admin startproject Coffee_Shop

Listamos las carpetas para confirmar la creación del proyecto. Abrimos el proyecto en Visual Studio Code:

code -r Coffee_Shop

Ahora tenemos el archivo manage.py y las configuraciones listas en nuestro editor.

¿Qué extensiones instalar en Visual Studio Code?

Aprovechamos las alertas de Visual Studio Code para instalar extensiones esenciales como:

  • Python
  • PyLance
  • Python Debugger
  • Black (formateo de código)
  • Django (para visualizar templates)

¿Cómo configurar el control de versiones con Git?

Inicializamos un repositorio Git:

git init

Añadimos y comiteamos los archivos iniciales creados por Django:

git add .
git commit -m "Initial setup"

¿Cómo crear y utilizar un archivo .gitignore?

Para evitar subir archivos innecesarios al repositorio, generamos un archivo .gitignore con gitignore.io especificando “Django” como criterio. Pegamos el contenido generado en un nuevo archivo .gitignore y lo comiteamos:

git add .gitignore
git commit -m "Add .gitignore"

¿Cómo manejar las dependencias del proyecto?

Creamos dos archivos para gestionar las dependencias:

  1. requirements.txt: para dependencias de producción.
  2. requirements-dev.txt: para dependencias de desarrollo como iPython.

Agregamos las dependencias instaladas en nuestro entorno actual:

pip freeze > requirements.txt

Comiteamos ambos archivos:

git add requirements.txt requirements-dev.txt
git commit -m "Add requirements files"

¿Cómo continuar con la configuración del proyecto?

Con el entorno preparado, es importante crear un archivo base HTML que sirva como plantilla. Te reto a crear base.html con un menú y un pie de página para usar en el curso de Django.

Aportes 15

Preguntas 1

Ordenar por:

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

Para los jefes que usamos linux:

python3 -m venv nombre_del_entorno

activar el entorno:

source nombre_del_entorno/bin/activate

y finalmente cuando ya no lo necesites:

deactivate

Igualmente dependiendo de tu configuración de linux puede que el comando sea python3 o python es cuestión de que lo pruebes.
.
Y como extra no olvides revisar que ciertamente estás trabajando en el entorno virtual en tu editor de código!

Para crear el requirements.txt tambien se puede usar pip freeze > requirements.txt en la terminal, puedes correr el comando cada vez que agregues una nueva dependencia, esto simplemento sobreescribira el anterior y agregara lo nuevo
Como crear el entorno virtual en cada sistema operativo. `# Linux` `sudo apt-get install python3-venv # If needed` `python3 -m venv .venv` `source .venv/bin/activate` `# macOS` `python3 -m venv .venv` `source .venv/bin/activate` `# Windows` `py -3 -m venv .venv` `.venv\scripts\activate` <https://code.visualstudio.com/docs/python/tutorial-django#_create-a-project-environment-for-the-django-tutorial>
Que buen curso.
Si estas trabajando desde windows, estos comandos te seran de utilidad * python -m venv coffee\_shop * .\coffee\_shop\Scripts\Activate * coffee\_shop\Scripts\activate.bat (desde cmd). Buena suerte!
En windows cuando creo el ambiente virtual veo que se crea un carpeta envs, pero no veo que la terminal del profesor suceda lo mismo, esos estaria bien ?|![]()
Documentación resumida de subcomandos que vienen con la instalación de Django con "pip install Django": ### **Comandos de Generación y Gestión de Proyectos y Aplicaciones** * **startapp: Crea una nueva aplicación de Django en el proyecto.** * **startproject: Crea un nuevo proyecto de Django.** ### **Comandos de Internacionalización** * **compilemessages: Compila archivos de mensajes traducidos.** * **makemessages: Extrae cadenas traducibles desde el código fuente para generar archivos de mensajes.** ### **Comandos de Base de Datos** * **dbshell: Abre una consola de base de datos usando la configuración de la base de datos de Django.** * **inspectdb: Genera modelos de Django desde un esquema de base de datos existente.** * **makemigrations: Crea nuevas migraciones basadas en los cambios detectados en los modelos.** * **migrate: Aplica migraciones a la base de datos.** * **optimizemigration: Optimiza las migraciones para mejorar el rendimiento.** * **showmigrations: Lista todas las migraciones y su estado.** * **sqlflush: Devuelve los comandos SQL para vaciar todas las tablas de la base de datos.** * **sqlmigrate: Muestra el SQL para las migraciones.** * **sqlsequencereset: Devuelve los comandos SQL para restablecer las secuencias de las tablas.** * **squashmigrations: Fusiona múltiples migraciones en una sola.** * **dumpdata: Serializa y exporta datos de la base de datos a un archivo.** * **loaddata: Carga datos en la base de datos desde un archivo.** * **flush: Elimina todos los datos de la base de datos y restablece las tablas.** * **createcachetable: Crea una tabla de caché en la base de datos para el backend de caché basado en la base de datos.** ### **Comandos de Configuración y Utilidades** * **diffsettings: Muestra las diferencias entre la configuración activa y la configuración por defecto de Django.** ### **Comandos de Desarrollo y Pruebas** * **check: Revisa la configuración del proyecto en busca de errores comunes.** * **runserver: Inicia el servidor de desarrollo de Django.** * **sendtestemail: Envía un correo electrónico de prueba para verificar la configuración del correo.** * **shell: Abre una consola interactiva de Python con el contexto del proyecto.** * **test: Ejecuta las pruebas unitarias para el proyecto.** * **testserver: Ejecuta un servidor de desarrollo con datos iniciales cargados desde fixtures.**
**PROYECTO COFFE SHOP** ![](https://static.platzi.com/media/user_upload/image-529dbd0c-8890-49ca-9fd6-23a3430108b3.jpg) ![](https://static.platzi.com/media/user_upload/image-9a93b0a9-7cc2-4cd6-a743-e401cc7b5b9d.jpg)
Hola Amigos un aporte: para que no hagan manualmente el archivo requirement.txt hagan esto: coloquen en el terminal el siguiente comando. pip freeze>requirement.txt Feliz tarde.
Codigo del gitignore: # Created by <https://www.toptal.com/developers/gitignore/api/django> \# Edit at <https://www.toptal.com/developers/gitignore?templates=django> \### Django ### \*.log \*.pot \*.pyc \_\_pycache\_\_/ local\_settings.py db.sqlite3 db.sqlite3-journal media \# If your build process includes running collectstatic, then you probably don't need or want to include staticfiles/ \# in your Git repository. Update and uncomment the following line accordingly. \# \<django-project-name>/staticfiles/ \### Django.Python Stack ### \# Byte-compiled / optimized / DLL files \*.py\[cod] \*$py.class \# C extensions \*.so \# Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ share/python-wheels/ \*.egg-info/ .installed.cfg \*.egg MANIFEST \# PyInstaller \# Usually these files are written by a python script from a template \# before PyInstaller builds the exe, so as to inject date/other infos into it. \*.manifest \*.spec \# Installer logs pip-log.txt pip-delete-this-directory.txt \# Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.\* .cache nosetests.xml coverage.xml \*.cover \*.py,cover .hypothesis/ .pytest\_cache/ cover/ \# Translations \*.mo \# Django stuff: \# Flask stuff: instance/ .webassets-cache \# Scrapy stuff: .scrapy \# Sphinx documentation docs/\_build/ \# PyBuilder .pybuilder/ target/ \# Jupyter Notebook .ipynb\_checkpoints \# IPython profile\_default/ ipython\_config.py \# pyenv \# For a library or package, you might want to ignore these files since the code is \# intended to run in multiple environments; otherwise, check them in: \# .python-version \# pipenv \# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. \# However, in case of collaboration, if having platform-specific dependencies or dependencies \# having no cross-platform support, pipenv may install dependencies that don't work, or not \# install all needed dependencies. \#Pipfile.lock \# poetry \# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. \# This is especially recommended for binary packages to ensure reproducibility, and is more \# commonly ignored for libraries. \# <https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control> \#poetry.lock \# pdm \# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. \#pdm.lock \# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it \# in version control. \# <https://pdm.fming.dev/#use-with-ide> .pdm.toml \# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm \_\_pypackages\_\_/ \# Celery stuff celerybeat-schedule celerybeat.pid \# SageMath parsed files \*.sage.py \# Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ \# Spyder project settings .spyderproject .spyproject \# Rope project settings .ropeproject \# mkdocs documentation /site \# mypy .mypy\_cache/ .dmypy.json dmypy.json \# Pyre type checker .pyre/ \# pytype static type analyzer .pytype/ \# Cython debug symbols cython\_debug/ \# PyCharm \# JetBrains specific template is maintained in a separate JetBrains.gitignore that can \# be found at <https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore> \# and can be added to the global gitignore or merged into this file. For a more nuclear \# option (not recommended) you can uncomment the following to ignore the entire idea folder. \#.idea/ \# End of <https://www.toptal.com/developers/gitignore/api/django>
We are also able use "django-admin startproject new\_coffe\_shop ." the point works for the new folder won't be duplicate.
buenas, hay una forma de directamente encapsular todos los paquetes con sus versiones que tengamos instalados en nuestro entorno en el requirements.txt con el comando `pip freeze > requirements.txt`
A mi me resulta mas cómodo utilizar virtualenvwrapper, después de su instalación y configuración, proporciona unos scripts para gestionar los entornos virtuales
que dolor tener que estar viendo otros tutoriales porque les da por programar en esas mac malucas
en windows (Ojo no sirve en una terminal sin permisos de administrador) python -m venv venv (para crear el entorno) venv\Scripts\activate (para activarlo)