Depuis longtemps je souhaitais apprendre le framework Django, mais un autre projet plus urgent a toujours eu la priorité. Comme beaucoup de développeurs, j'utilise Python pour l'apprentissage automatique, mais lorsque j'ai appris la programmation Web, PHP jouissait encore de la primauté, et donc quand il était temps pour moi d'adopter un nouveau cadre complexe pour créer des applications Web pour publier ma machine. travail d'apprentissage, je me suis quand même tourné vers PHP. Depuis un certain temps, j'utilise un framework appelé Laravel pour créer mes sites Web, et ce framework PHP m'a présenté le modèle moderne de programmation Web Modèle-Vue-Contrôleur. Pour rendre les choses encore plus compliquées, j'aime construire mes frontaux avec un framework javascript moderne. Je connais mieux Vue.js, donc pour ce projet, je suis resté fidèle à cela même s'il est plus courant d'entendre parler de personnes utilisant React.
Pourquoi utiliser un framework compliqué de toute façon ? Quels sont les plus grands défis pour apprendre un framework comme Django, Laravel, React ou Vue ?
Chacun a sa propre réponse, mais j'ai appris à aimer les frameworks MVC car ils fournissent de nombreux conseils sur la façon de structurer votre application. Cela m’évite de devoir réinventer la roue à chaque fois. Au début, ces frameworks peuvent paraître contraignants et énigmatiques, mais une fois que je me suis familiarisé avec la structure, je trouve qu'il est plus facile d'ajouter de nouvelles fonctionnalités.
Le défi est que les choses peuvent devenir presque trop simples. Les frameworks comme Django s'appuient sur de nombreux raccourcis ou hypothèses qui peuvent être basés sur un concept familier, mais ont un nom et une structure particulièrement inconnus dans Django. Dans mon application, Django gère les API et tout le routage web. Si je souhaite ajouter un nouveau point de terminaison d'API, je dois ajouter une fonction à un fichier dans mon view.py, puis accéder au fichier urls.py et ajouter une instruction pour importer cette fonction et une autre instruction pour définir l'URL où elle se trouve. Le point de terminaison de l’API est disponible. Après cela, je dois modifier mon composant Vue frontal pour utiliser Javascript pour interroger ce point de terminaison afin d'obtenir des données et de les afficher ou de les manipuler pour l'utilisateur.
Une fois mon projet configuré, l'ajout de fonctionnalités comme celle-ci est rapide. Il me suffit d'ajouter environ quatre lignes de code, puis je peux me concentrer sur la logique nécessaire à ma nouvelle fonction dans le fichier vues.py pour traiter la requête HTTP et renvoyer les données nécessaires au format JSON. Le plus difficile est d'apprendre ce que sont ces fichiers et comment ils fonctionnent ensemble pour créer une application complète.
Je trouve que la meilleure façon d'apprendre un framework comme Django est de trouver un exemple fonctionnel et de commencer à essayer d'apporter de petites modifications pour avoir une idée du flux de données. Reportez-vous à la documentation à mesure que les concepts commencent à devenir plus clairs et à avoir plus de sens. Demandez aux modèles d'IA d'expliquer des morceaux de code et ce que feront les différents fichiers standard d'un framework. Il ne faut pas longtemps pour se rendre compte que ces outils sont apparus comme des moyens de gagner du temps à long terme et de faciliter la maintenance et la mise à jour de votre application. Étant donné que les frameworks Django et Vue ont une structure standard, lorsque vous y reviendrez plus tard, vous constaterez qu'il est plus facile de comprendre pourquoi vous avez codé les choses d'une certaine manière, et plus facile de vous familiariser à nouveau avec votre travail. Il est également plus facile de récupérer l'application de quelqu'un d'autre et de comprendre les fonctionnalités de base puisque vous connaissez la structure de base de son application.
Alors, quels sont les principes fondamentaux de Django qui pourraient aider quelqu'un à démarrer ? Pour moi, la première chose à comprendre est que les projets Django sont générés en exécutant une commande pour créer un nouveau projet Django, ce qui génère un ensemble de fichiers et de dossiers de base qui constituent un "projet de base" que vous pouvez utiliser pour commencer à construire. Le dossier du projet contiendra plusieurs fichiers Python avec des paramètres qui s'appliquent à l'ensemble du projet. Les sites importants que vous visiterez fréquemment sont settings.py, où se trouvent tous vos paramètres, et urls.py. Lorsque vous avez une question du type « Comment Django décide-t-il où placer mes fichiers statiques », la réponse se trouve généralement quelque part dans le fichier settings.py. Lorsque vous souhaitez ajouter une nouvelle URL à votre application, vous devrez mettre à jour le fichier urls.py.
En plus de ces fichiers au niveau du projet, vous créez ensuite un dossier pour chaque application de votre projet. Ces applications doivent ensuite être enregistrées, c'est-à-dire nommées, dans le fichier settings.py. Le dossier principal de l'application de mon projet s'appelle documents. Dans ce dossier, j'ai un fichier models.py, un fichier serializer.py, un fichier views.py. Il y en a d'autres, mais ce sont les trois importants.
Dans models.py, je spécifie mon objet Document et les champs qu'il contient. Django fait le travail pour moi de créer une table Documents dans la base de données IRIS avec le schéma nécessaire pour enregistrer les informations que je prévois de stocker dans les objets Document. Dans mon fichier models.py, je lui dis que mes documents ont tous un nom, qui est une chaîne de caractères ne dépassant pas 255 caractères, un champ de contenu, qui est juste une grande quantité de texte, ainsi qu'un nom de base de données où les vecteurs sont stockés (un autre champ de texte), le type d'intégration (un autre champ de texte) et enfin la dimension d'intégration vectorielle, qui est un nombre. En utilisant ces définitions, Django crée la table de base de données nécessaire avec les types de colonnes nécessaires. Enregistrer des objets dans la base de données est alors aussi simple que Document.save().
À l'intérieur du fichier serializer.py se trouve simplement une définition sur la façon de convertir votre objet en JSON et vice versa. Pour les cas d'utilisation de base, il existe une manière standard de le définir, et vous pouvez le voir dans ce projet.
Maintenant, nous arrivons au point de Django, le fichier vues.py. C'est ici que nous définissons les fonctions qui acceptent les requêtes HTTP et renvoient des données comme une réponse HTTP entière, ou une réponse JSON dans le cas d'une API JSON. Cela signifie que Django peut fournir une page Web entière et également être le front-end de votre application, ou simplement fournir des données JSON, et vous pouvez créer votre front-end sur une plate-forme entièrement différente.
Au début, utiliser tous ces fichiers et conventions apparemment arbitraires peut sembler une corvée, mais une fois que vous voyez que cela signifie que votre application commence tout simplement à fonctionner et à traiter les requêtes HTTP et à fournir les données correctes en réponse, elle peut être très amusant de continuer à créer de nouvelles fonctionnalités et capacités. Une fois que vous avez défini un objet, une route Web et une fonction pour gérer une requête HTTP, vous réalisez avec quelle facilité vous pouvez en définir un deuxième et un troisième pour ajouter des fonctionnalités à votre application.
J'ai dérivé mon projet à partir du modèle Iris Django créé par @guillaume.Rongier7183 ici sur github : https://github.com/grongierisc/iris-django-template
Ce modèle contient uniquement Django, et il a été extrêmement utile pour apprendre le framework Django. L'un des ajouts majeurs que j'ai apportés a été d'ajouter Vue.js avec Tailwind CSS pour montrer que vous pouvez intégrer un framework Javascript moderne avec ce package et avoir une application à page unique exécutée sur IRIS. Une application à page unique est une application javascript qui envoie des requêtes xhr pour obtenir des données JSON et met à jour la page de manière dynamique sans jamais la recharger complètement. Cela a ses avantages et ses inconvénients, mais c'est une caractéristique du développement Web moderne.
J'encourage les gens à considérer mon projet non seulement comme un exemple de RAG et Vector Stores sur IRIS, mais également comme un modèle pour utiliser Django avec Vue.js et Tailwind pour créer facilement et rapidement une application Web flexible et moderne au-dessus de IRIS. Ce référentiel se trouve sur Github ici : https://github.com/mindfulcoder49/iris-django-template
Je serai heureux de répondre à toutes vos questions ou de vous donner un aperçu de tout problème que quiconque pourrait rencontrer en essayant d'adapter ce projet à son propre usage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!