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

Django REST Framework

27/32
Recursos

La separaci贸n de la l贸gica de backend y frontend es una pr谩ctica com煤n en el desarrollo de software moderno, con el frontend generalmente escrito en JavaScript y la conexi贸n al backend manejada a trav茅s de APIs. Django REST es una librer铆a de Python que facilita la creaci贸n de estas APIs, permitiendo una integraci贸n eficiente entre frontend y backend.

驴C贸mo instalar Django REST Framework?

Para instalar Django REST Framework, utilizamos el siguiente comando:

pip install django-rest-framework

No olvides agregarlo a tu archivo requirements.txt para mantener un registro de las dependencias del proyecto. Adem谩s, debes incluirlo en la configuraci贸n del proyecto dentro del archivo settings.py en la secci贸n de INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    'rest_framework',
]

驴C贸mo configurar un Serializer en Django REST?

Los Serializers en Django REST convierten modelos de Django en JSON. Para crear un nuevo Serializer, sigue estos pasos:

  1. Crea un archivo llamado serializers.py en la aplicaci贸n correspondiente.
  2. Importa ModelSerializer desde rest_framework:
    from rest_framework import serializers
    from .models import Product
    
    class ProductSerializer(serializers.ModelSerializer):
        class Meta:
            model = Product
            fields = '__all__'
    

驴C贸mo crear una vista en Django REST?

Para crear una vista que devuelva datos en formato JSON:

  1. Crea una vista heredando de APIView:

    from rest_framework.views import APIView
    from rest_framework.response import Response
    from .models import Product
    from .serializers import ProductSerializer
    
    class ProductListAPI(APIView):
        def get(self, request):
            products = Product.objects.all()
            serializer = ProductSerializer(products, many=True)
            return Response(serializer.data)
    
  2. Define la URL para esta vista en urls.py:

    from django.urls import path
    from .views import ProductListAPI
    
    urlpatterns = [
        ...
        path('api/products/', ProductListAPI.as_view(), name='product-list-api'),
    ]
    

驴C贸mo manejar permisos y autenticaci贸n en Django REST?

Dependiendo de tu caso de uso, puedes configurar permisos y autenticaci贸n. Para esta vista, vamos a desactivarlos:

from rest_framework.permissions import AllowAny

class ProductListAPI(APIView):
    permission_classes = [AllowAny]

    def get(self, request):
        products = Product.objects.all()
        serializer = ProductSerializer(products, many=True)
        return Response(serializer.data)

驴C贸mo ejecutar y probar tu API?

Una vez configurado todo, puedes ejecutar tu servidor de desarrollo y acceder a la URL de la API para ver los datos en formato JSON:

python manage.py runserver

Luego, visita http://localhost:8000/api/products/ para ver la lista de productos.

Aportes 9

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

excelente curso, seria genial que pronto, mas pronto de lo posible, creen otro para rest framework ya que el standard es la separacion del frontend con el backend
Buenas. Por aqui anexo mi soluci贸n en donde cree todo el crud del api de productos. Tanto los metodos como GET, POST, PATCH y DELETE fueron creados. ```python class ProductListAPI(APIView): authentication_classes = [] permission_classes = [] def get(self, request, pk=None, format=None): id = pk if id is not None: try: product_id = Product.objects.get(id=id) serializer = ProductSerializer(product_id) return Response(serializer.data) except Exception as error: return Response({'msg': 'Product Was not found'}, status=status.HTTP_404_NOT_FOUND ) products = Product.objects.all() serializer = ProductSerializer(products, many=True) return Response(serializer.data) def post(self, request, pk=None, format=None): serializer = ProductSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response({'msg': 'Product Created'}, status=status.HTTP_201_CREATED ) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST ) def patch(self, request, pk=None, format=None): id = pk try: product_id = Product.objects.get(pk=id) serializer = ProductSerializer( product_id, data=request.data, partial=True) if serializer.is_valid(): serializer.save() return Response({'msg': 'Product Updated'}, status=status.HTTP_201_CREATED ) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST ) except Exception as error: return Response({'msg': 'Product Was not found'}, status=status.HTTP_404_NOT_FOUND ) def delete(self, request, pk=None, format=None): id = pk try: product_id = Product.objects.get(pk=id) product_id.delete() return Response({'msg': 'Product Deleted'}, status=status.HTTP_200_OK ) except Exception as error: return Response({'msg': 'Product Was not found'}, status=status.HTTP_404_NOT_FOUND ) ```Tambien tuve que afectar el archivo de URLS de los productos: ```python from django.contrib import admin from django.urls import path from .views import ProductFormView, ProductListView, ProductListAPI urlpatterns = [ path('', ProductListView.as_view(), name="products_list"), path('agregar/', ProductFormView.as_view(), name="add_product"), path('api/', ProductListAPI.as_view(), name="list_product_api_1"), path('api/<int:pk>', ProductListAPI.as_view(), name="list_product_api") ] ```y le agregue el id al serializer de producto. ```python from rest_framework.serializers import ModelSerializer from .models import Product class ProductSerializer(ModelSerializer): class Meta: model = Product fields = [ "id", 'name', 'description', 'price', 'available', 'photo' ] #fields = '__all__' ```Notese que al serialize se le puede agregar el valor \_\_all\_\_ para traerse todos los campos de la bd del modelo (en este caso lo comente para tenerlo como referencia).
no se si es lo mejor, pero yo siempre antes de un push solo hago un **pip freeze > requirements.txt,** asi evito tener pendiente estar pegando y buscando cada uno
No se si es lo mejor, pero yo antes de cada push solo hago un: ```js pip freeze > requirements.txt ```Asi nos evitamos estar copiando y pegando.
Saludos, qu茅 puedo hacer si al importar ModelSerializer recibo este error: Import "rest\_framework.seralizer" could not be resolvedPylance[<u>reportMissingImports</u>](https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportMissingImports)
Woe, el profe luis no decepciona, que excelente curso de django.
por favor maestro haga un curso sobre django channels
Pa cuando un cursito que integre DRF con Next馃槈
No he podido usar la libreria de reest\_framework, tengo todas las configuraciones iguales, pero no me permite usarlan dice: No se ha podido resolver la importaci贸n "rest\_framework.serializers".Pylance[<u>reportMissingImports</u>](https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportMissingImports)[Ver el problema (Alt+F8)]()[Correcci贸n R谩pida (Ctrl+.)]() ![](https://static.platzi.com/media/user_upload/image-b510e55b-258f-4a15-9c58-a0ed8ec661e5.jpg) ![](https://static.platzi.com/media/user_upload/image-f7f75c8b-b5d5-466c-ad1b-578a8db1cc71.jpg) ![](https://static.platzi.com/media/user_upload/image-4d446021-ca44-413a-b356-a33c7d85526a.jpg) help!!!