Maison >développement back-end >Tutoriel Python >Explication détaillée des vues dans le framework Django

Explication détaillée des vues dans le framework Django

PHPz
PHPzoriginal
2023-06-17 10:18:152028parcourir

Django est un framework Web hautement personnalisable qui fournit de nombreux outils et bibliothèques pratiques pour aider les développeurs à créer rapidement des applications Web évolutives et hautes performances. Parmi elles, les vues sont l’un des composants les plus importants du framework Django. Les vues sont chargées de traiter les demandes des clients et de renvoyer les réponses correspondantes. Dans cet article, nous allons approfondir les vues du framework Django et expliquer comment l'utiliser pour créer des applications Web personnalisables et performantes.

1. Le concept de base de la vue

Dans le framework Django, une vue fait référence à une fonction ou une classe Python qui traite les requêtes du client et renvoie la réponse correspondante. Les vues peuvent gérer différents types de requêtes, telles que GET, POST, PUT, DELETE, etc. Les vues sont généralement utilisées pour afficher des modèles HTML, interroger des bases de données, traiter les données de formulaires, etc. Les vues sont l'un des composants les plus importants du framework Django car elles sont chargées de traiter les demandes des clients et de renvoyer ensuite les réponses appropriées.

Les fonctions View sont le moyen le plus couramment utilisé pour créer des vues dans le framework Django. La fonction view est une fonction Python qui reçoit un paramètre de type HttpRequest et renvoie une réponse de type HttpResponse. Les fonctions d'affichage sont généralement définies dans le fichier views.py et liées à un modèle d'URL. Par exemple :

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the index.")

Dans le code ci-dessus, nous créons un index de fonction de vue, qui reçoit un paramètre de requête et renvoie un objet HttpResponse contenant la chaîne "Bonjour tout le monde. Vous êtes à l'index."

En plus des fonctions d'affichage, le framework Django fournit également des classes d'affichage pour créer des vues. La classe view est une classe Python qui hérite de la classe View du framework Django et implémente les méthodes définies dans la classe View. Les classes de vues sont souvent utilisées pour créer des vues complexes et fournir des options plus personnalisables. Par exemple :

from django.views import View
from django.http import HttpResponse

class IndexView(View):
    def get(self, request):
        return HttpResponse("Hello, world. You're at the index.")

Dans le code ci-dessus, nous avons créé une classe IndexView qui hérite de la classe View. Cette classe implémente la méthode get définie dans la classe View et renvoie un objet HttpResponse contenant la chaîne "Bonjour tout le monde. Vous êtes à l'index".

2. Méthodes HTTP des vues

Dans le framework Django, les vues peuvent gérer différents types de requêtes HTTP, telles que GET, POST, PUT, DELETE, etc. La fonction view peut obtenir la méthode HTTP demandée via l'attribut METHOD de l'objet HttpRequest et renvoyer différentes réponses selon différentes méthodes HTTP. Par exemple :

from django.http import HttpResponse

def hello(request):
    if request.method == 'GET':
        return HttpResponse('Hello, World!')
    elif request.method == 'POST':
        return HttpResponse('Hello, POST!')
    else:
        return HttpResponse('Hello, Other HTTP method!')

Dans le code ci-dessus, nous avons créé une fonction d'affichage bonjour qui renvoie différentes réponses basées sur différentes méthodes HTTP. Si la méthode HTTP demandée est GET, elle renverra la chaîne « Hello, World ! » ; si elle est POST, elle renverra la chaîne « Hello, POST ! » sinon, elle renverra la chaîne « Bonjour, Autre méthode HTTP ; !".

De même, les classes de visualisation peuvent également gérer différents types de requêtes HTTP. Les classes View implémentent généralement plusieurs méthodes, une pour chaque méthode HTTP. Par exemple :

from django.views import View
from django.http import HttpResponse

class HelloWorldView(View):
    def get(self, request):
        return HttpResponse('Hello, World!')

    def post(self, request):
        return HttpResponse('Hello, POST!')

    def put(self, request):
        return HttpResponse('Hello, PUT!')

    def delete(self, request):
        return HttpResponse('Hello, DELETE!')

Dans le code ci-dessus, nous avons créé une classe HelloWorldView qui hérite de la classe View. Cette classe gère les requêtes GET, POST, PUT et DELETE en implémentant quatre méthodes get, post, put et delete, et renvoie différentes réponses.

3. Passage des paramètres des vues

Dans le framework Django, les vues peuvent accepter les paramètres des modèles d'URL et des soumissions des clients. La fonction view peut obtenir les paramètres soumis par le client via les attributs GET et POST de l'objet HttpRequest ; la classe view peut obtenir les paramètres soumis par le client via les méthodes GET et POST de l'objet HttpRequest. Par exemple :

from django.http import HttpResponse

def hello(request):
    name = request.GET.get('name', 'World')
    return HttpResponse(f'Hello, {name}!')

Dans le code ci-dessus, nous créons une fonction de vue hello, qui accepte un paramètre nommé name et obtient les paramètres soumis par le client via la méthode GET. Si le client ne soumet aucun paramètre, la valeur par défaut « World » est utilisée. La fonction d'affichage utilise l'interpolation de chaîne pour construire une réponse HTTP contenant le nom du paramètre.

De même, la classe view peut également utiliser les méthodes GET et POST pour obtenir les paramètres soumis par le client. Par exemple :

from django.views import View
from django.http import HttpResponse

class HelloView(View):
    def get(self, request):
        name = request.GET.get('name', 'World')
        return HttpResponse(f'Hello, {name}!')

    def post(self, request):
        name = request.POST.get('name', 'World')
        return HttpResponse(f'Hello, {name}!')

Dans le code ci-dessus, nous avons créé une classe HelloView qui hérite de la classe View. Cette classe implémente les méthodes get et post, obtient le nom du paramètre soumis par le client via les méthodes GET et POST et utilise l'interpolation de chaîne pour construire une réponse HTTP contenant le nom du paramètre.

4. Rendu de modèles

Dans le framework Django, les modèles sont un moyen simple et puissant de lier et de restituer des objets Python et des pages HTML. Les modèles peuvent aider les développeurs à réduire le code HTML répété, à gagner du temps de développement et à améliorer la maintenabilité du code. Dans le framework Django, les vues utilisent généralement des modèles pour afficher les pages HTML. La vue peut restituer le modèle via la fonction de rendu et transmettre les données du modèle au modèle. Par exemple :

from django.shortcuts import render

def hello(request):
    name = request.GET.get('name', 'World')
    context = {'name': name}
    return render(request, 'hello.html', context=context)

Dans le code ci-dessus, nous avons créé une fonction de vue hello qui accepte un paramètre nommé name et transmet le paramètre name au modèle. La fonction view utilise la fonction render pour restituer le modèle nommé hello.html et transmet le contexte des données du modèle.

De même, les classes de vue peuvent également utiliser la fonction de rendu pour restituer des modèles. Par exemple :

from django.views import View
from django.shortcuts import render

class HelloView(View):
    def get(self, request):
        name = request.GET.get('name', 'World')
        context = {'name': name}
        return render(request, 'hello.html', context=context)

    def post(self, request):
        name = request.POST.get('name', 'World')
        context = {'name': name}
        return render(request, 'hello.html', context=context)

Dans le code ci-dessus, nous avons créé une classe HelloView qui hérite de la classe View. Cette classe implémente les méthodes get et post, transmet les données au modèle nommé hello.html via la fonction de rendu et restitue la page HTML.

Résumé

Les vues sont l'un des composants les plus importants du framework Django. Les vues sont chargées de traiter les demandes des clients et de renvoyer les réponses correspondantes. Dans le framework Django, les vues peuvent être créées à l'aide de fonctions de vue et de classes de vue. Les vues peuvent gérer différents types de requêtes HTTP et accepter les paramètres des modèles d'URL et des soumissions des clients. Les vues utilisent généralement des modèles pour afficher les pages HTML et transmettre les données du modèle aux modèles. Le framework Django fournit une multitude d'outils et de bibliothèques pour aider les développeurs à créer rapidement des applications Web personnalisables et performantes.

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:
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