Como crear un CRUD con Django 3.1 (Python 3.9) y Bootstrap 4.6 – Parte 2
En esta página:
Demo
En la parte anterior llamada Como crear un CRUD con Django 3.1 (Python 3.9) y Bootstrap 4.6 – Parte 1, creamos el nuevo proyecto con Django para este sistema CRUD y verificamos que el proyecto funcione correctamente, asimismo creamos la aplicación con el nombre postres, ya que los datos que listaremos serán este tipo de productos, en esta Parte 2 vamos a configurar la base de datos y crearemos la tabla para almacenar los datos del sistema CRUD, vamos con ello.
Partes
Antes de continuar te invito a leer los siguientes artículos:
-
- Que es Django, Historia y tu primer Hola Mundo (Corregido: 31-05-2019)
- Conceptos Iniciales para desplegar Django
- Como usar Django y React JS (Método Manual, no Librería)
- Como crear un CRUD con Django 2 y Bootstrap 4 – Parte 1 (Python 3.7)
- 5 Servicios de Hosting VPS ideales para publicar un Proyecto Creado con Django
- Como Integrar Firebase en Django 3.0.7 – Parte 1
- 7 Proyectos que han sido Creados con Django Framework
- Como Crear una API REST con Django 3.1.1 + Consumir Datos en una Aplicación Android – Parte 1
- Puedes leer más en la categoría Django
Asimismo te invito a escuchar el Podcast: “Porque Debes Acostumbrarte A Resolver Los Problemas De Código Por Tu Cuenta”:
Spotify: | Sound Cloud: | Apple Podcasts: |
Bien ahora continuemos con el Post: Como crear un CRUD con Django 3.1 (Python 3.9) y Bootstrap 4.6 – Parte 2.
Base de Datos
La base de datos que voy a usar es MySQL, ya que estoy usando Windows 10, tengo que descargar un cliente MySQL que me permite usar Django y MySQL en conjunto. Ese cliente es el siguiente archivo llamado mysqlclient-1.4.6-cp39-cp39-win_amd64.whl (Windows 10 – x64 – 64 bytes).
Descargo el archivo y lo coloco en el directorio principal de mi proyecto.
1 2 3 4 5 6 7 8 9 |
/cruddjango31 ├── /cruddjango31 ├── /mientornovirtual ├── /postres ├── db.sqlite3 ├── manage.py ├── mysqlclient-1.4.6-cp39-cp39-win_amd64.whl // Este Archivo |
Abro la consola de comandos en el directorio principal del proyecto en donde coloque el archivo mysqlclient-1.4.6-cp39-cp39-win_amd64.whl y ejecuto el siguiente comando.
1 2 3 4 5 6 7 8 |
# Instalamos el cliente de mysql pip install mysqlclient-1.4.6-cp39-cp39-win_amd64.whl Requirement already satisfied: mysqlclient==1.4.6 from file:///E:/xampp/htdocs/xampp/nc/tutoriales/blog/cruddjango31/mysqlclient-1.4.6-cp39-cp39-win_amd64.whl in c:\python39\lib\site-packages (1.4.6) WARNING: You are using pip version 20.2.3; however, version 21.1.3 is available. You should consider upgrading via the 'c:\python39\python.exe -m pip install --upgrade pip' command. |
Puedes buscar otras versiones del cliente MySQL para Django en Windows en este enlace y en este otro enlace.
Voy a crear la base de datos, la llamaré cruddjango31 igual que el nombre del proyecto y dentro de ella creare la tabla llamada postres, esta tabla va tener los campos id, nombre, precio, stock, img, created_at y updated_at.
Como sabemos el campo id debe ser Autoincrementable, este se genera automáticamente cuando haga la migración en Django para la tabla postres.
Ahora voy a definir los campos que va tener la tabla postres, abro el archivo llamado models.py que se encuentra en el directorio llamado también postres
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
/cruddjango31 ├── /cruddjango31 ├── /mientornovirtual ├── /postres ├── __pycache__ ├── __init__.py ├── admin.py ├── apps.py ├── models.py // Abro este Archivo ├── tests.py ├── views.py ├── db.sqlite3 ├── manage.py ├── mysqlclient-1.4.6-cp39-cp39-win_amd64.whl |
Una vez abierto el archivo models.py agrego los siguientes campos para la tabla postres
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 'postres' class Postres(models.Model): nombre = models.CharField(max_length=100, default='DEFAULT VALUE') precio = models.CharField(max_length=20, default='DEFAULT VALUE') stock = models.CharField(max_length=100, default='DEFAULT VALUE') img = models.FileField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: db_table = 'postres' # Le doy de nombre 'postres' a nuestra tabla en la Base de Datos |
He definido los campos id, nombre, precio, stock, img, created_at y updated_at para nuestra tabla postres.
Antes de ejecutar migraciones en Django debemos configurar la base de datos en el archivo de configuración de Django llamado settings.py, este archivo se encuentra en la carpeta cruddjango31 > cruddjango31
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/cruddjango31 ├── /cruddjango31 ├── __pycache__ ├── __init__.py ├── asgi.py ├── settings.py // Abro este Archivo ├── urls.py ├── wsgi.py ├── /mientornovirtual ├── /postres ├── db.sqlite3 ├── manage.py ├── mysqlclient-1.4.6-cp39-cp39-win_amd64.whl |
En el archivo settings.py agrego soporte y conexión a la base de datos MySQL, ya que usaré la base de datos MySQL, le colocaré el termino ‘default’ para indicarle a Django que MySQL será el motor que usaré como base de datos y debajo coloco el nombre de mi base de datos, usuario, password y como opción le digo a Django que usaré el modo SQL tradicional.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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': 'cruddjango31', 'USER': 'root', 'PASSWORD': '', 'HOST': 'localhost', 'PORT': '3306', 'OPTIONS': { 'sql_mode': 'traditional', } } } |
Paso seguido voy a crear la migración de la tabla postres, abro mi consola de comandos y ejecuto el siguiente comando.
1 2 3 4 5 6 |
python manage.py makemigrations postres Migrations for 'postres': cruddjango31\postres\migrations\0001_initial.py - Create model Postres |
Bien ahora procederé a crear la tabla postres en la base de datos, ejecuto el siguiente comando en mi consola de comandos.
1 2 3 4 5 6 7 |
python manage.py migrate postres Operations to perform: Apply all migrations: postres Running migrations: Applying postres.0001_initial... OK |
Si ingreso a phpMyAdmin puedo ver que se me ha creado la tabla postres con los campos que le especifique.
Bien hasta aquí llegamos con esta segunda parte del tutorial en donde configuramos la base de datos MySQL, asimismo creamos las migraciones y la tabla postres para el sistema 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 vamos a crear las vistas genéricas para el sistema CRUD.
- Los pasos 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.
- Django Tutoriales
- 08-07-2021
- 09-06-2022
- Crear un Post - Eventos Devs - Foro