En esta página:
Demo
En la parte anterior pudimos realizar los primeros pasos importantes para crear nuestro proyecto.
Ya tenemos listo nuestro entorno virtual y creado la aplicación jugos en donde realizaremos las tareas CRUD.
Continuemos con esta segunda parte con el tutorial Como Crear Un CRUD con Django 5 – Parte 2, vamos con ello.
Partes
Para poder realizar las tareas CRUD necesitamos de una base de datos, vamos a configurarla ahora.
Base de Datos
Para este tutorial usaré la base de datos MySQL.
Instalamos el paquete mysqlclient que da soporte a Django Framework para usar MySQL. Para instalarlo ejecutamos el siguiente comando en nuestra consola de comandos:
1 2 3 4 5 6 7 8 9 10 11 |
pip install mysqlclient Collecting mysqlclient Downloading mysqlclient-2.2.1-cp311-cp311-win_amd64.whl (202 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 202.8/202.8 kB 6.2 MB/s eta 0:00:00 Installing collected packages: mysqlclient Successfully installed mysqlclient-2.2.1 (mientornovirtual) |
He instalado XAMPP en Windows, para usarlo como servidor local, esta herramienta viene con MySQL, phpMyAdmin, Apache, PHP, etc.
De XAMPP, solo usaremos su herramienta phpMyAdmin y la base de datos MySQL. Si no tienes instalado XAMPP sigue este video, en donde te enseño a como hacerlo:
Paso seguido creo una base de datos, la llamaré productos y dentro de ella creare la tabla llamada jugos, esta tabla va tener los campos id, nombre, precio, stock, img, created_at y updated_at.
Recuerda que el campo id debe ser Auto incrementable, este se debe generar automáticamente cuando se hace la migración en Django, en este caso para la tabla jugos.
Entonces defino los campos que va tener la tabla jugos, abro el archivo llamado models.py que se encuentra en el directorio llamado también jugos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
/crud-django5 ├── /cruddjango5 ├── /cruddjango5 ├── /jugos ├── /migrations ├── __init__.py ├── admin.py ├── apps.py ├── models.py // Abro este archivo ├── test.py ├── views.py ├── db-sqlite3 ├── manage.py ├── /mientornovirtual |
Luego de abrir el archivo models.py le agrego los siguientes campos para la tabla jugos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
from django.db import models from django.utils import timezone # Creación de campos de la tabla 'jugos' class Jugos(models.Model): nombre = models.CharField(max_length=100) precio = models.CharField(max_length=20) stock = models.CharField(max_length=100) img = models.FileField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: db_table = 'jugos' # Le doy de nombre 'jugos' a nuestra tabla en la Base de Datos |
Si ves, en el código anterior, he definido los campos nombre, precio, stock, img, created_at y updated_at para la tabla jugos.
Antes de ejecutar las migraciones, debemos configurar la base de datos en el archivo de configuración de Django llamado settings.py, este archivo se encuentra en la carpeta crud-django5 > cruddjango5 > cruddjango5:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/crud-django5 ├── /cruddjango5 ├── /cruddjango5 ├── __pycache__ ├── __init__.py ├── asgi.py ├── settings.py // Abro este Archivo ├── urls.py ├── wsgi.py ├── /jugos ├── db-sqlite3 ├── manage.py ├── /mientornovirtual |
En el archivo settings.py agregamos soporte y conexión a la base de datos MySQL, le coloco el termino ‘default’ para indicarle a Django que MySQL será el motor que usaré como base de datos.
Luego coloco el nombre de la base de datos, usuario, password y como opción le digo a Django que usaré el modo SQL tradicional.
No olvides que también debes agregar import os para que la conexión funcione:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import os DATABASES = { 'sqlite': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), }, 'default': { # le coloco default para poder usar MySQL 'ENGINE': 'django.db.backends.mysql', 'NAME': 'productos', 'USER': 'root', 'PASSWORD': '', 'HOST': 'localhost', 'PORT': '3306', 'OPTIONS': { 'sql_mode': 'traditional', } } } |
Ahora creo la migración de la tabla jugos en la consola de comandos y ejecuto el siguiente comando:
1 2 3 4 5 6 7 8 9 10 |
python manage.py makemigrations jugos D:\xampp\htdocs\xampp\nc\tutoriales\blog\crud-django5\mientornovirtual\Lib\site-packages\django\core\management\commands\makemigrations.py:160: RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default': (1049, "Unknown database 'cruddjango4'") warnings.warn( Migrations for 'jugos': jugos\migrations\0001_initial.py - Create model Jugos (mientornovirtual) |
Procedo a crear la tabla jugos en la base de datos, ejecutando el siguiente comando en mi consola de comandos:
1 2 3 4 5 6 7 8 9 |
python manage.py migrate jugos Operations to perform: Apply all migrations: jugos Running migrations: Applying jugos.0001_initial... OK (mientornovirtual) |
Verifico en phpMyAdmin y aparece la tabla jugos con sus campos correspondientes:
Bien, hasta aquí llegamos con esta segunda parte del tutorial en donde configuramos nuestra base de datos MySQL, también creamos las migraciones y una tabla llamada jugos para el proyecto CRUD.
Ten Paciencia, lo que quiero es que conozcas bien como se crea este proyecto y no llenarte el capitulo de mucho contenido porque te puedes marear y no tendrás un óptimo aprendizaje.
Nota (s)
- En la siguiente parte crearemos las vistas genéricas en Django, para dar soporte a las vistas HTML del sistema CRUD.
- Los pasos y comandos mencionados en este tutorial pueden cambiar en un futuro, esto no depende de nosotros si no de las empresas que dan soporte a Django y Python que suelen cambiar el orden y las opciones de sus tecnologías.
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.