Maison > développement back-end > Tutoriel Python > Comprendre l'architecture de Django : le modèle MTV.

Comprendre l'architecture de Django : le modèle MTV.

Mary-Kate Olsen
Libérer: 2024-10-18 20:16:30
original
839 Les gens l'ont consulté

Understanding Django’s Architecture: The MTV Pattern.

Django suit le modèle MTV (Model-Template-View) pour le développement Web. Voici une répartition de chaque composant :

Modèle : définit votre structure de données et gère l'interaction avec la base de données, vous permettant de stocker et de récupérer des données sans écrire de requêtes SQL manuellement.

Modèle : responsable du rendu HTML et de la présentation des données à l'utilisateur. Vous écrivez du HTML mélangé avec Django Template Language (DTL) pour afficher du contenu dynamique.

Vue : agit comme la couche de logique métier. Il connecte le modèle et le modèle, gère les demandes des utilisateurs, interagit avec le modèle et renvoie une réponse (souvent HTML rendue à partir du modèle).

Comment fonctionne le cycle requête-réponse de Django :

  • Un utilisateur demande une page Web (via une URL).
  • Django fait correspondre l'URL à une vue.
  • La vue récupère les données du modèle et les transmet au modèle.
  • Le modèle restitue les données au format HTML et les renvoie en réponse à l'utilisateur.

Étape 1 : Créer une nouvelle application dans Django.
Une fois que vous avez configuré Django (comme expliqué dans l'article précédent), créons une nouvelle application dans votre projet.

Exécutez ces commandes :

cd mysite
python3 manage.py startapp core
Copier après la connexion
Copier après la connexion

Cela crée une application nommée core dans votre projet mysite. La structure de votre fichier devrait maintenant ressembler à ceci :

.
├── core
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── manage.py
└── mysite
    ├── asgi.py
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
Copier après la connexion
Copier après la connexion

Étape 2 : Enregistrez votre application dans le fichier de paramètres.
Pour informer Django de la nouvelle application, vous devez l'ajouter à INSTALLED_APPS dans mysite/settings.py :

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'core',  # add this line
]
Copier après la connexion

Étape 3 : Créer une vue de base.
Créons une vue simple qui renvoie un message « Hello, World ! » message.

Ouvrez views.py dans l'application principale et ajoutez le code suivant :

from django.http import HttpResponse

def learn(request):
    return HttpResponse("Hello, World!")
Copier après la connexion

Étape 4 : Mapper les URL vers la vue.
Pour accéder à cette vue via une URL, vous devez la mapper dans le fichier core/urls.py. Créez ce fichier s'il n'existe pas et ajoutez ce qui suit :

from django.urls import path
from . import views

urlpatterns = [
    path('learn/', views.learn, name='learn'),
]
Copier après la connexion

Ensuite, incluez les URL de l'application principale dans le fichier principal mysite/urls.py :

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('core/', include('core.urls')),  # include the core app URLs
]

Copier après la connexion

Maintenant, si vous exécutez le serveur et visitez http://127.0.0.1:8000/core/learn/, vous devriez voir « Hello, World ! » affiché.
Étape 5 : Créer et afficher un modèle

from django.shortcuts import render

def learn(request):
    context = {'name': 'Django'}
    return render(request, 'hello.html', context)

Copier après la connexion

Cette vue transmet désormais une variable (nom) à un modèle appelé hello.html.
Étape 6 : Créer un répertoire de modèles et un fichier HTML.
Dans votre application principale, créez un dossier de modèles et un fichier hello.html :

mkdir core/templates
touch core/templates/hello.html
Copier après la connexion

Dans hello.html, ajoutez le code HTML suivant

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello Template</title>
</head>
<body>
    <h1>Hello, {{ name }}!</h1>
</body>
</html>
Copier après la connexion

Lorsque vous visitez à nouveau l'URL d'apprentissage, vous devriez maintenant voir "Bonjour, Django !" dans le navigateur.

Étape 7 : Créer un modèle de base.
Créons un modèle de publication simple pour stocker les articles de blog.

Dans core/models.py, ajoutez le code suivant :

cd mysite
python3 manage.py startapp core
Copier après la connexion
Copier après la connexion

Ce Postmodel comporte deux champs : titre et contenu. La méthode __str__ garantit que les objets Post sont affichés avec leurs titres dans l'administrateur ou le shell Django

Étape 8 : Appliquer le modèle à la base de données.
Pour créer la table correspondante dans la base de données, exécutez ces commandes :

.
├── core
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── manage.py
└── mysite
    ├── asgi.py
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
Copier après la connexion
Copier après la connexion

Django va maintenant créer une table de base de données pour le modèle Post.

En suivant ces étapes, vous avez réussi à créer une application Django de base avec un modèle, une vue et un modèle. Vous pouvez désormais développer cette base en ajoutant davantage de fonctionnalités, telles que la gestion des entrées des utilisateurs, l'amélioration de la conception et la création d'une application plus interactive.

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!

source:dev.to
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal