Table des matières
2.1 Structure globale
2.4 Modèle
2.3 Vue
PARTIE 3. Style de codage
3.1 docstring
3.2 Valeurs de retour multiples
PARTIE 4. Organisation du routage
4.1 Système de routage
4.2 La route contient
4.3 Namespace
Maison Opération et maintenance Sécurité Quelle est la méthode de développement de Django

Quelle est la méthode de développement de Django

May 19, 2023 pm 05:44 PM
django

PARTIE 1. Avant de commencer

Django, en tant que framework d'application Web puissant, est progressivement devenu populaire ces dernières années. De plus en plus de développeurs Python investissent dans Django, mais aussi en raison des nombreux problèmes de Django Content, alors que tout le monde. Quand ils entrent pour la première fois dans Django, ils se sentent toujours un peu "un peu dépassés" et ne savent pas par où commencer. Ou encore, après une première compréhension, vous ne savez toujours pas si l'approche actuelle est élégante, comment organiser le projet et comment rendre le code plus réutilisable.

PARTIE 2. Structure du projet

Une bonne structure de projet représente la moitié de la bataille.

2.1 Structure globale

Par défaut, la structure du projet générée par Django ressemble à ceci :

Quelle est la méthode de développement de Django

À mesure que le nombre d'applications dans le projet continue d'augmenter, les packages dans le répertoire racine local continueront d'augmenter À mesure que le nombre de fichiers augmente, il devient de plus en plus difficile à maintenir, nous devons donc avoir un plan clair pour l'ensemble du projet et placer raisonnablement chaque fichier.

Si le projet est petit et que vous ne prévoyez pas de réutiliser l'application de diverses manières, vous pouvez envisager les méthodes suivantes :

Quelle est la méthode de développement de Django

Le dossier venv stocke l'environnement virtualenv du projet. Ce n'est pas nécessaire et peut. être placé ailleurs.

L'application Database est spécialement utilisée pour stocker le modèle, gérer les commandes et certains filtres personnalisés utilisés dans les modèles. Elle est stockée dans le répertoire racine du projet.

docs et logs stockent respectivement les documents liés au projet et les fichiers journaux générés pendant l'exécution.

static stocke les fichiers statiques, tels que css/js/img/font, etc.

utils stocke les fonctions des outils, les classes utilisées dans le projet et certains modules courants, tels que l'enregistreur, etc.

templates stocke les fichiers de modèles. Le ou les modèles parents hérités de plusieurs modèles sont placés dans le répertoire racine et nommés avec des noms tels que base pour une maintenance facile. Les modèles restants sont placés dans des dossiers avec les noms d'application correspondants.

Le répertoire Web stocke toutes les applications. S'il existe de nombreuses applications, elles peuvent être divisées en plusieurs packages pour la planification. Chaque package stocke un type d'application.

2.2 Modèle

Dans la partie module Modèle, nous nous intéressons principalement au mappage des données aux classes. Dans des circonstances normales, les classes correspondant à chaque table seront placées dans un fichier séparé, et les classes correspondantes seront placées. dans models/__init__.py Les classes sont importées dans l'ordre, de sorte que lorsqu'elles sont utilisées à d'autres endroits, elles puissent être importées via database.models import xxxx Lors du nom des classes, il est recommandé d'ajouter le nom du projet. Par exemple, le nom de mon projet ici est Cherry, alors toutes les classes sont CherryLeaks, etc., cela sera clair en un coup d'œil lors de la révision du code et du processus d'écriture, sachant que cette classe représente des données.

Il est recommandé d'ajouter un gestionnaire distinct pour les modèles et de mettre en œuvre les méthodes correspondantes pour éviter les opérations répétées.

De plus, il existe quelques suggestions, qui peuvent être choisies en fonction de la situation réelle :

Il n'est pas recommandé d'utiliser des types tels que des clés étrangères

Ajoutez les champs is_deleted,created_time et update_time à chaque table

Réparez utilisation des index

2.3 Vue

La plupart de la logique métier doit être placée dans la partie Vue, et cette partie doit être le noyau. Il est également recommandé ici de placer toutes les vues ayant des fonctions similaires dans le même fichier. Pour faciliter la maintenance et le développement futurs, ce fichier doit être placé dans un package nommé « contrôleur » ou « vue ». Par exemple, la gestion du routage lié au projet est entièrement placée dans controller/project.py.

Préférez utiliser certaines des classes View intégrées de Django, telles que ListView, TemplateView, etc. Si vous devez implémenter View vous-même, il est recommandé d'utiliser la vue basée sur les classes pour encapsuler différentes méthodes de requête dans différentes méthodes afin de faciliter la maintenance future. .

2.4 Modèle

Pour les fichiers modèles, le meilleur moyen est de découper différentes pages et fonctions en différents fichiers modèles et de les stocker dans des dossiers sous le nom d'Application, afin qu'ils puissent être rapidement récupérés lors d'une maintenance ultérieure. fichier modèle correspondant.

De plus, il est fortement recommandé d'utiliser la fonction d'héritage de modèle. Toutes les pages sont héritées du modèle parent et divers blocs sont utilisés pour développer la page. Le nom de bloc de chaque position est défini dans le modèle parent pour les modèles enfants. couvrir. Il est recommandé d'utiliser un nom populaire et court pour chaque bloc, tel que : barre latérale, script, en-tête, main_content, page_title, page_description, etc.

Pour les fonctions courantes, telles que les zones de commentaires, vous pouvez envisager de les stocker dans un fichier séparé et de les charger via {% include 'filename.tpl.html' %} si nécessaire. Il convient de noter que si vous devez utiliser les extensions et inclure des instructions en même temps, vous devez les utiliser dans un bloc, sinon elles seront invalides. Les exemples suivants ne sont pas valides :

Quelle est la méthode de développement de Django

doit être utilisé comme suit :

Quelle est la méthode de développement de Django

PARTIE 3. Style de codage

3.1 docstring

La flexibilité du langage Python nous fait parfois oublier le type de paramètre ou le type de retour d'une méthode spécifique lors de l'écriture de code. Dans ce cas, nous devons utiliser docstring pour fournir des annotations d'informations claires pour chaque méthode afin que d'autres puissent la développer et la maintenir. Reportez-vous à ce lien, si vous utilisez PyCharm, vous pouvez écrire une docstring à complétion automatique.

3.2 Valeurs de retour multiples

Dans de nombreux cas, nos méthodes doivent renvoyer plusieurs valeurs à l'appelant, ou revenir au front-end via JSON. Si les données sont renvoyées de manière aléatoire, cela entraînera une confusion dans le développement et dans le processus. à la fin, nous ne saurons pas ce que la méthode renvoie.

Une meilleure approche consiste à se mettre d'accord sur le format de retour. Pour revenir à l'appelant, renvoyez simplement un tuple et écrivez la signification de chaque valeur dans la docstring. En plus de renvoyer des résultats, nous devons parfois renvoyer une erreur pour indiquer si un problème ou une exception s'est produit lors du traitement des données. En général, il existe plusieurs méthodes disponibles :

Lancer une exception via raise

Retourner via plusieurs valeurs de retour, telles que err, result = func()

Retourner via un attribut de la classe, tel que instance = Class( ) ; err = instance.error_message

Ces trois méthodes ont toutes des avantages et des inconvénients et doivent être sélectionnées en fonction de la situation réelle du projet. Quelle que soit la méthode utilisée, elle doit être cohérente tout au long du projet et ne le fait pas. mélangez-les autant que possible ;

Pour le JSON renvoyé au front end, il faut que ce soit un peu plus compliqué, au moins 2~3 champs doivent être renvoyés :

Quelle est la méthode de développement de Django

code est le code d'état renvoyé par cet appel, qui peut être convenu en fonction de la situation réelle. Le message est un message facile à comprendre du code d'état qui peut être utilisé par les développeurs pour déboguer et fournir des notifications aux utilisateurs. Les données sont les informations réelles renvoyées. Dans de nombreux cas, ce champ peut ne pas être nécessaire. Le format spécifique du champ doit également être à nouveau convenu en fonction de la situation réelle.

PARTIE 4. Organisation du routage

Un routage élégant et simple garantit la qualité du projet et réduit les coûts de maintenance.

4.1 Système de routage

Django dispose d'un système de routage et d'un algorithme de routage puissants qui peuvent répondre à divers besoins de l'entreprise, et la configuration est flexible et simple. Chaque fichier de configuration de routage est un mappage du CHEMIN d'URL à la fonction/classe. Tout peut être mis en place par vous-même, sans être soumis à des frameworks ou autres restrictions. Vous pouvez vous référer à cette section de la documentation sur les stratégies de routage des requêtes de Django.

Lors de la configuration des itinéraires, vous pouvez placer certaines variables entre crochets pour une utilisation facile plus tard. Certains "Convertisseurs de chemin" peuvent être utilisés entre crochets pour spécifier des types de variables, tels que str, int, slug, uuid, path. Un fichier de routage d'URL complet ressemble à ceci :

Quelle est la méthode de développement de Django

De plus, vous pouvez également définir une correspondance régulière dans la route via re_path :

Quelle est la méthode de développement de Django

Parfois, vous souhaiterez peut-être ajouter une route par défaut, par exemple, renvoie une page par défaut lors de l'accès à /blog/ et renvoie le contenu du numéro de page spécifié lors de l'accès à /blog/page Il peut être configuré comme suit

Quelle est la méthode de développement de Django

4.2 La route contient

Comme le. Le projet continue de se développer, le nombre de routes utilisées continuera d'augmenter, c'est pourquoi Django fournit un mécanisme d'inclusion de routes pour nous faciliter l'organisation des routes dans différentes applications. Jetons un coup d'œil à un exemple simple :

Quelle est la méthode de développement de Django

Dans cet exemple, toutes les routes demandant community/* sont transmises à aggregator.urls pour analyse. De même, toutes les demandes de contact/* sont également transmises à un autre. un. Le module de routage le gère ; si vous n'avez pas autant d'applications dans votre projet et que vous souhaitez quand même gérer le routage via include, vous pouvez utiliser la méthode suivante :

Quelle est la méthode de développement de Django

4.3 Namespace

Généralement, notre Each Le projet Django est composé de plusieurs applications. Si toutes les routes d'applications sont placées dans URLCONF_ROOT, ce fichier deviendra de plus en plus difficile à maintenir au fil du temps et sera très déroutant. Les itinéraires portant le même nom peuvent être utilisés dans différentes applications, provoquant des conflits. Afin de résoudre ces problèmes, nous pouvons utiliser « l'inclusion de route » et « l'espace de noms » pour le résoudre. Surtout si vous maintenez une application qui peut être réutilisée, afin de garantir l'unicité de la route, l'espace de noms est particulièrement important.

Il existe généralement deux types d'espaces de noms : l'espace de noms d'application et l'espace de noms d'instance. Par exemple, admin:index représente la route d'index de l'espace de noms d'administrateur. Pour plus d'informations sur cette partie, veuillez vous référer à : Documents officiels

L'espace de noms d'application est plus facile à comprendre. Il fait référence à l'espace de noms au niveau de l'application. Il est généralement organisé de la manière suivante :

Quelle est la méthode de développement de Django

L'espace de noms d'instance fait référence à l'espace de noms au niveau de l'instance, qui est souvent utilisé pour une application. être utilisé plusieurs fois. Dans le cas de l'instanciation, afin de distinguer chaque instance, l'espace de noms d'instance doit être introduit. Jetons un coup d'œil à l'exemple dans la documentation officielle :

Quelle est la méthode de développement de Django

Vous pouvez voir que les deux routes author-polls et editor-polls contiennent en fait la même route, mais spécifient des espaces de noms différents. Il s'agit de l'espace de dénomination au niveau de l'instance. , c'est-à-dire l'espace de noms de l'objet actuellement accédé. Différentes identités d'utilisateur obtiendront des espaces de noms différents lors de l'accès à différentes URL. Par exemple, les visiteurs et les administrateurs accéderont à la page pointée par polls:index, mais en raison des espaces de noms différents, ils obtiendront des résultats complètement différents.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment vérifier la version de Django Comment vérifier la version de Django Dec 01, 2023 pm 02:25 PM

Étapes pour vérifier la version de Django : 1. Ouvrez un terminal ou une fenêtre d'invite de commande ; 2. Assurez-vous que Django n'est pas installé, vous pouvez utiliser l'outil de gestion de packages pour l'installer et entrer la commande pip install django 3 ; . Une fois l'installation terminée, vous pouvez utiliser python -m django --version pour vérifier la version de Django.

Django vs Flask : une analyse comparative des frameworks Web Python Django vs Flask : une analyse comparative des frameworks Web Python Jan 19, 2024 am 08:36 AM

Django et Flask sont tous deux leaders dans les frameworks Web Python, et ils ont tous deux leurs propres avantages et scénarios applicables. Cet article procédera à une analyse comparative de ces deux frameworks et fournira des exemples de code spécifiques. Introduction au développement Django est un framework Web complet, son objectif principal est de développer rapidement des applications Web complexes. Django fournit de nombreuses fonctions intégrées, telles que ORM (Object Relational Mapping), formulaires, authentification, backend de gestion, etc. Ces fonctionnalités permettent à Django de gérer de grandes

Avantages et inconvénients du framework Django : tout ce que vous devez savoir Avantages et inconvénients du framework Django : tout ce que vous devez savoir Jan 19, 2024 am 09:09 AM

Django est un framework de développement complet qui couvre tous les aspects du cycle de vie du développement Web. Actuellement, ce framework est l’un des frameworks Web les plus populaires au monde. Si vous envisagez d'utiliser Django pour créer vos propres applications Web, vous devez alors comprendre les avantages et les inconvénients du framework Django. Voici tout ce que vous devez savoir, y compris des exemples de code spécifiques. Avantages de Django : 1. Développement rapide : Djang peut développer rapidement des applications Web. Il fournit une bibliothèque riche et interne

Quelle est la différence entre les versions de Django ? Quelle est la différence entre les versions de Django ? Nov 20, 2023 pm 04:33 PM

Les différences sont : 1. Série Django 1.x : Il s'agit d'une première version de Django, comprenant les versions 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8 et 1.9. Ces versions fournissent principalement des fonctions de développement Web de base ; 2. Série Django 2.x : Il s'agit de la version intermédiaire de Django, comprenant les versions 2.0, 2.1, 2.2 et autres. 3. Série Django 3.x : Il s'agit de la dernière version ; série de Django, y compris les versions 3.0, 3, etc.

Comment mettre à niveau la version de Django : étapes et considérations Comment mettre à niveau la version de Django : étapes et considérations Jan 19, 2024 am 10:16 AM

Comment mettre à niveau la version de Django : étapes et considérations, exemples de code spécifiques requis Introduction : Django est un puissant framework Web Python qui est continuellement mis à jour et mis à niveau pour offrir de meilleures performances et plus de fonctionnalités. Cependant, pour les développeurs utilisant des versions plus anciennes de Django, la mise à niveau de Django peut rencontrer certains défis. Cet article présentera les étapes et les précautions à suivre pour mettre à niveau la version de Django et fournira des exemples de code spécifiques. 1. Sauvegardez les fichiers du projet avant de mettre à niveau Djan

Comment vérifier la version de Django Comment vérifier la version de Django Nov 30, 2023 pm 03:08 PM

Comment vérifier la version de Django : 1. Pour vérifier via la ligne de commande, entrez la commande "python -m django --version" dans la fenêtre du terminal ou de la ligne de commande. 2. Pour vérifier dans l'environnement interactif Python, entrez "import django ; print(django. get_version())" code ; 3. Vérifiez le fichier de paramètres du projet Django et recherchez une liste nommée INSTALLED_APPS, qui contient des informations sur les applications installées.

Django est-il front-end ou back-end ? Django est-il front-end ou back-end ? Nov 21, 2023 pm 02:36 PM

Django est le back-end. Détails : Bien que Django soit avant tout un framework backend, il est étroitement lié au développement front-end. Grâce à des fonctionnalités telles que le moteur de modèles de Django, la gestion de fichiers statiques et l'API RESTful, les développeurs front-end peuvent collaborer avec les développeurs back-end pour créer des applications Web puissantes et évolutives.

Django, Flask et FastAPI : quel framework convient aux débutants ? Django, Flask et FastAPI : quel framework convient aux débutants ? Sep 27, 2023 pm 09:06 PM

Django, Flask et FastAPI : quel framework convient aux débutants ? Introduction : Dans le domaine du développement d'applications Web, il existe de nombreux excellents frameworks Python parmi lesquels choisir. Cet article se concentrera sur les trois frameworks les plus populaires, Django, Flask et FastAPI. Nous évaluerons leurs fonctionnalités et discuterons du framework le mieux adapté aux débutants. Parallèlement, nous fournirons également quelques exemples de code spécifiques pour aider les débutants à mieux comprendre ces frameworks. 1. Django : Django

See all articles