85 votes

Django ou Django Rest Framework

J'ai créé une certaine application en Django, et je sais que le cadre de repos Django est utilisé pour construire des API. Cependant, lorsque j'ai commencé à lire des informations sur Django Rest Framework sur leur site Web, j'ai remarqué que chaque élément de l'application était différent. Guide API (comme les demandes, les réponses, les vues, etc.) prétend qu'il est supérieur à Django (demandes, réponses, vues, etc.).

Ce que je ne comprends pas, c'est si ces API vont remplacer mes modèles, vues, etc. existants dans Django ou comment puis-je les utiliser différemment dans mon code Django existant ?

Je suis assez familier avec Django, mais je n'arrive pas à comprendre exactement ce qu'est le cadre de repos de Django, même après y avoir passé un certain temps. (Je sais qu'il est utilisé pour les API.) De plus, ai-je réellement besoin d'une API ? Mon application est capable d'envoyer des données au serveur sans API, alors dans quel cas aurais-je besoin d'une API ?

8 votes

Ils sont conçus pour fonctionner ensemble. DRF peut être construit au-dessus de vos modèles Django (et de l'authentification Django, etc.) - vous l'utilisez à la place des vues Django ordinaires aux endroits où vous voulez des points de terminaison API.

0 votes

@Anentropic Donc, si je construis mon application entièrement en DRF, les deux choses seront prises en charge (la construction de l'application elle-même et l'API).

0 votes

Essayez de lire les documents de la DRF, par exemple le tutoriel ici. django-rest-framework.org/tutorial/1-serialization/ ...il montre comment créer un modèle Django, puis des sérialiseurs DRF basés sur le modèle, puis des vues et enfin une API basée sur le modèle et les sérialiseurs.

2voto

Résumons,

Django :

Étroitement couplé avec les modèles Django.

Cadre de repos Django :

Ouvert pour construire des vues de mon choix avec des API REST.

1voto

Roy O'Bannon Points 51

Pour dire les choses simplement : avec Django, vous pouvez créer des sites Web rendus côté serveur ; et avec DRF, vous pouvez créer des SPA avec une partie frontale vuejs ou react.

1voto

Voici un lien qui pourrait vous donner un aperçu de ce que vous recherchez. Il explique comment une application Django peut être convertie en Django Rest Service, et il explique également ce qu'est réellement un REST Service.

https://opensourceforu.com/2017/11/converting-django-app-rest-api/

0voto

ABN Points 364
  1. Avez-vous vraiment besoin de l'Api ? Cela dépend de vos besoins et de vos ressources. Si vous avez seulement besoin d'une application web, alors django fournit tout ce dont vous avez besoin pour développer une application web. Si vous avez besoin de développer une mobile qui communiquera avec un serveur dorsal, alors vous devrez vous devrez implémenter une Api. Si vous avez des appareils iot distants qui doivent publier leurs données sur votre serveur, vous aurez besoin d'une Api. Si vous êtes doué pour le développement d'applications frontales, d'applications mobiles, etc. mobile, et le développement d'applications iot ou que vous avez les ressources pour pour avoir une équipe séparée pour le développement d'applications frontales, backend mobile et informatique, il est judicieux de séparer les applications backend et applications frontales. Pour réaliser cette séparation, votre backend sera et votre application frontale, mobile et iot communiquera avec votre backend en utilisant avec votre backend en utilisant votre api backend. Avec cette conception, tout modification du backend aura un impact minimal sur vos autres applications.

  2. Ces API remplaceront-elles vos modèles Django existants ? Idéalement, elles ne devraient pas le faire, mais je ne suis pas certain que l'utilisation de drf modifiera vos modèles Django. Je n'ai pas utilisé drf pour mettre en œuvre l'API. Mais si vous utilisez simplement Django pour mettre en œuvre votre API, vos modèles ne seront certainement pas modifiés. Vous avez juste besoin de définir vos urls d'api et vos vues d'api.

  3. Avez-vous besoin de paquets externes comme drf pour mettre en œuvre un point de terminaison d'api dans Django ? Non. Vous pouvez facilement mettre en œuvre des points de terminaison d'api en utilisant le cadre Django pur.

  4. Une façon simple d'implémenter une API en utilisant purement Django.

    Définissez l'url de votre api -

    urlpatterns = [   
        path('get_all_user/',UserApiView.as_view(),name='get_all_user'), 
    ]

    Définissez votre point de vue

    @method_decorator(csrf_exempt,name='dispatch') 
    class UserApiView(View):
    
        def post(self, request):
            response_data = {}
            json_data = json.loads(request.body)
            response_data['user'] = YourMethodToGetModelData(json_data)
            return JsonResponse(response_data)

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X