Utilice la API de Django REST y la plantilla de Django

Estoy empezando a utilizar Django para mis servicios de backend, pero estoy un poco confundido acerca del uso de Django REST framework, ver que estoy construyendo una aplicación iOS como un front-end, a lo mejor de mi conocimiento Django REST es la mejor biblioteca para realizar mis tareas de backend, sin embargo, eventualmente me gustaría construir un front-end web regular. He visto tutoriales sobre Django y Django REST, y nunca hablan de usar ambos.

Mi pregunta es cómo utilizar Django REST para alimentar la aplicación iOS, y ser capaz de utilizar el motor tentador de Django para un front-end web utilizando el principio DRY.

Leí en el sitio web del marco de Django REST que puedes usar class based vistas con el marco, así que puedo utilizar esta misma clase para alimentarse por web front-end y mi aplicación ios de manera eficiente?

class SnippetDetail(APIView):

    def get_object(self, pk):
        try:
            return Snippet.objects.get(pk=pk)
        except Snippet.DoesNotExist:
            raise Http404

Pregunta hecha hace 3 años, 5 meses, 0 días - Por bitwisewizard


2 Respuestas:

  • Para utilizar Django REST framework para alimentar una aplicación iOS y también poder utilizar Django para un front-end web, puedes seguir estos pasos:

    • Utilizar Django REST framework para crear endpoints de API que serán consumidos por tu aplicación iOS. Esto implica definir serializers y vistas basadas en clases que responderán a las solicitudes de tu app. El código que proporcionaste es un ejemplo de una vista basada en clases en Django REST framework.
    • Para utilizar Django para construir un front-end web, puedes utilizar plantillas de Django en conjunción con las vistas y modelos de Django. Puedes crear vistas que rendericen plantillas HTML y que utilicen los mismos modelos que utilizas en Django REST framework.
    • Para utilizar la misma clase para alimentar tanto tu front-end web como tu aplicación iOS, puedes seguir un enfoque de desarrollo DRY (Don't Repeat Yourself). Esto implica organizar tu código de manera que puedas reutilizar la lógica de negocio en diferentes partes de tu aplicación.

    En resumen, puedes utilizar Django REST framework para crear endpoints de API para tu aplicación iOS y también utilizar Django para construir un front-end web. Puedes reutilizar la lógica de negocio en ambas partes de tu aplicación para seguir el principio DRY.

    Respondida el Dec 18, 2020 a las 01:31 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Usando Django REST Framework y plantillas de Django

    Puedes utilizar Django REST Framework (DRF) y plantillas de Django para construir tanto una API REST como un frontend web para tu aplicación. Aquí tienes cómo hacerlo:

    Para la API REST:

    Crea vistas basadas en clases en DRF para manejar las solicitudes de la API. Define los métodos GET, POST, PUT y DELETE para las distintas operaciones CRUD. Utiliza los serializadores de DRF para convertir los objetos del modelo en JSON y viceversa.

    Para el frontend web:

    Crea vistas basadas en funciones o basadas en clases en Django. Utiliza plantillas de Django para renderizar el HTML del frontend. Realiza solicitudes de API a las vistas de DRF utilizando AJAX o solicitudes GET/POST normales.

    Principio DRY:

    Puedes utilizar el principio DRY compartiendo el código que maneja la lógica del negocio entre las vistas de DRF y las vistas de Django. Por ejemplo, puedes crear funciones auxiliares o clases mixtas que se utilicen en ambos tipos de vistas.

    Utilizando una sola clase para alimentar el frontend y la aplicación móvil:

    Sí, puedes utilizar la misma clase de vista basada en DRF para alimentar tanto el frontend web como la aplicación iOS. DRF proporciona serializadores que pueden convertir los datos en diferentes formatos, incluyendo JSON y XML, lo que lo hace adecuado para su uso con aplicaciones móviles.

    Ejemplo de clase de vista:

    El siguiente ejemplo muestra una clase de vista que puede utilizarse para alimentar tanto una aplicación móvil como un frontend web:

    python
    from rest_framework.views import APIView
    from rest_framework.response import Response
    from rest_framework import serializers
    
    class SnippetSerializer(serializers.ModelSerializer):
        class Meta:
            model = Snippet
            fields = ('id', 'title', 'code')
    
    class SnippetDetail(APIView):
    
        def get_object(self, pk):
            try:
                return Snippet.objects.get(pk=pk)
            except Snippet.DoesNotExist:
                raise Http404
    
        def get(self, request, pk, format=None):
            snippet = self.get_object(pk)
            serializer = SnippetSerializer(snippet)
            return Response(serializer.data)
    
        def put(self, request, pk, format=None):
            snippet = self.get_object(pk)
            serializer = SnippetSerializer(snippet, data=request.data)
            if serializer.is_valid():
                serializer.save()
                return Response(serializer.data)
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    

    Esta clase de vista proporciona métodos GET y PUT que pueden ser utilizados por tanto la aplicación móvil como el frontend web para recuperar y actualizar los datos de los fragmentos de código.

    Respondida el Dec 18, 2020 a las 01:41 - por Gemini

    Votos positivos: 0 | Votos negativos: 0