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

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
7 Hrs
56 Min
4 Seg
Curso de Django

Curso de Django

Luis Martínez

Luis Martínez

Configuración del Proyectos en Django

16/32
Resources

We start setting up a Coffee Shop project in Django

How to create and activate the virtual environment?

To start, we position ourselves in the desired folder in our editor. We create the virtual environment with:

python -m venv <path_save_path>/Coffee_Shop

Activate the environment with:

source Coffee_Shop/bin/activate

We verify its activation and proceed to install Django:

pip install django

How to start a Django project?

We create the project using the command:

django-admin startproject Coffee_Shop

We list the folders to confirm the creation of the project. Open the project in Visual Studio Code:

code -r Coffee_Shop

Now we have the manage.py file and the configurations ready in our editor.

Which extensions to install in Visual Studio Code?

We take advantage of Visual Studio Code alerts to install essential extensions such as:

  • Python
  • PyLance
  • Python Debugger
  • Black (code formatting)
  • Django (to visualize templates)

How to set up version control with Git?

We initialize a Git repository:

git init

We add and commit the initial files created by Django:

git add . git commit -m "Initial setup".

How to create and use a .gitignore file?

To avoid uploading unnecessary files to the repository, we generate a .gitignore file with gitignore.io specifying "Django" as the criteria. We paste the generated content into a new .gitignore file and commit it:

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

How to manage the project dependencies?

We create two files to manage dependencies:

  1. requirements.txt: for production dependencies.
  2. requirements-dev.txt: for development dependencies such as iPython.

We add the dependencies installed in our current environment:

pip freeze > requirements.txt

We comment both files:

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

How to continue with the project setup?

With the environment ready, it is important to create an HTML base file to serve as a template. I challenge you to create base.html with a menu and a footer to use in the Django course.

Contributions 21

Questions 1

Sort by:

Want to see more contributions, questions and answers from the community?

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
Que buen curso.
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>
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.**
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!
Poetry provides a more comprehensive and integrated solution for managing dependencies, virtual environments, and project configuration. It simplifies many aspects of Python project management, making it a preferred choice for many developers. However, `venv` is still a valuable tool for creating isolated environments, especially for simpler projects or when you prefer more manual control
`pip freeze > requirements.txt`
como sacar el signo ∼ en mac??
Despues de instalar ipython me salieron muchas mas librerias al usar pip freeze jajaja, ya veo porque el profesor solo tomo la version que salia en la terminal. y no uso pip freeze para copiarlo desde ahi
Hola, una pregunta, despues de ingresar el comando git init, me aparecen 6200 archivos en mi repositorio, eso es normal?
me sale esto , estoy windows : ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment? (coffee\_shop) PS C:\Users\crnlo\Desktop\Coffee\Coffee\_Shop> ayuda
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 ?|![]()
**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)