web-dev-qa-db-fra.com

Est Django pour le frontend ou le backend?

Je vois souvent des gens prétendre que leur backend est implémenté dans Django, mais n'est pas Django censé être pour le frontend? Je suppose que le backend fait référence à la logique métier où le frontend fait référence à la présentation. Suis-je en train de manquer quelque chose?

30
Kar

Ni.

Django est un framework, pas un langage. Python est la langue dans laquelle Django est écrit.

Django est une collection de bibliothèques Python vous permettant de créer rapidement et efficacement une application Web de qualité, et convient à la fois au frontend et au backend.

Cependant, Django est assez célèbre pour son "administrateur Django", un backend généré automatiquement qui vous permet de gérer votre site Web en un clin d'œil pour de nombreux cas d'utilisation simples sans avoir à coder beaucoup.

Plus précisément, pour le front-end, Django vous aide à sélectionner, formater et afficher les données. Il comprend la gestion des URL, un langage de modèles, le mécanisme d'authentification, les hooks de cache et divers outils de navigation tels que les paginateurs.

Pour le backend, Django est livré avec un ORM qui vous permet de manipuler facilement votre source de données, des formulaires (une implémentation indépendante de HTML) pour traiter les entrées utilisateur et valider les données et les signaux, une implémentation de l'observateur Plus une tonne de petits outils astucieux spécifiques au cas d'utilisation.

Pour tout le reste du travail backend Django n'aide pas, vous utilisez simplement Python. La logique métier est un terme assez large.

Vous voulez probablement aussi savoir que Django est livré avec le concept des applications, une bibliothèque auto-enfichable enfichable Django bibliothèque qui résout un problème. Le Django est énorme, et il existe donc de nombreuses applications qui font une logique métier spécifique que Vanilla Django ne fait pas.

57
e-satis

Il semble que vous parliez en fait d'un modèle MVC (Model-View-Controller), où la logique est séparée en différents "niveaux". Django, en tant que framework, suit MVC (vaguement). Vous avez des modèles qui contiennent votre logique métier et sont directement liés aux tables de votre base de données, des vues qui agissent en fait comme le contrôleur, gèrent les demandes et retournent les réponses, et enfin, des modèles qui gèrent la présentation.

Django n'est pas seulement l'un d'entre eux, c'est un cadre complet pour le développement d'applications et fournit tous les outils dont vous avez besoin à cet effet.

Frontend vs Backend est toute la sémantique. Vous pouvez potentiellement créer une application Django qui est entièrement "backend", en utilisant son package de contributions admin intégré pour gérer les données d'une application entièrement distincte. Ou, vous pouvez l'utiliser uniquement pour " frontend ", en utilisant simplement ses vues et modèles mais en utilisant autre chose entièrement pour gérer les données. Le plus souvent, il est utilisé pour les deux. L'administrateur intégré (le" backend "), fournit un moyen facile de gérer vos données et vous construisez applications dans Django pour présenter ces données de différentes manières. Cependant, si vous étiez si enclin, vous pourriez également créer votre propre "backend" dans Django. Vous n'êtes pas obligé d'utiliser l'administrateur par défaut .

7
Chris Pratt

(a) Django est un framework, pas un langage

(b) Je ne sais pas ce que vous manquez - il n'y a aucune raison pour laquelle vous ne pouvez pas avoir de logique métier dans une application Web. Dans Django, vous vous attendriez normalement à ce que la logique de présentation soit séparée de la logique métier. Tout simplement parce qu'il est hébergé sur le même serveur d'applications, il ne s'ensuit pas que les deux couches sont enchevêtrées.

(c) Django fournit des modèles, mais ne fournit pas de bibliothèques riches pour générer du contenu côté client.

3
Marcin