Maison > Article > développement back-end > Création d'applications Web avec Python et Django : guide de maîtrise du débutant
Créer des applications Web avec Python et Django : un guide du débutant à la maîtrise
Avec le développement rapide d'Internet, les applications Web ont attiré de plus en plus d'attention. Le développement d’applications Web nécessite la maîtrise de plusieurs compétences, l’une des compétences clés est de choisir le bon framework web. Le framework Django du langage Python est un excellent choix, et les applications Web développées via Django peuvent être implémentées rapidement, simplement et efficacement.
Dans ce guide, nous expliquerons comment créer des applications Web en utilisant Python et Django du débutant au maître. Le contenu comprend :
1. Connaissance de base du langage Python
Python est un langage de programmation avancé orienté objet avec une syntaxe concise et claire et des fonctions puissantes. La maîtrise des bases du langage Python est cruciale pour le développement d'applications Web à l'aide du framework Django. Ce qui suit est une brève introduction aux bases du langage Python :
Les variables en Python peuvent être déclarées et affectées directement sans. spécifiant le type de données. Les types de données couramment utilisés incluent les nombres, les chaînes, les listes, les tuples, les dictionnaires, etc. Par exemple :
a = 3 b = "hello" c = [1, 2, 3] d = (4, 5, 6) e = {"name": "Tom", "age": 20}
Les instructions conditionnelles en Python peuvent être utilisées pour déterminer si une certaine condition est vraie et effectuer les opérations correspondantes. Les instructions conditionnelles couramment utilisées incluent les instructions if et les instructions elif, telles que :
if a > 0: print("a is positive") elif a == 0: print("a is zero") else: print("a is negative")
Les instructions de boucle en Python peuvent être utilisées pour effectuer certaines opérations à plusieurs reprises. Les instructions de boucle couramment utilisées incluent les boucles for et while, telles que :
for i in range(1, 6): print(i) i = 1 while i <= 5: print(i) i += 1
Les fonctions et modules en Python peuvent être utilisés pour encapsuler des opérations complexes et fournir du code réutilisable. Les définitions de fonctions utilisent le mot-clé def et les modules utilisent le mot-clé import. Par exemple :
def add(x, y): return x + y import math print(math.pi)
2. Introduction au framework Django
Django est un framework d'application Web open source efficace. Il se compose d'un mappeur objet-relationnel basé sur le principe de base de "DRY" (Don't Repeat Yourself), d'un système de visualisation basé sur la structure MTV (Model-Template-View, model-template-view) et d'un système flexible, Système de routage d’URL puissant et facile à utiliser. Django possède les fonctionnalités suivantes :
3. Méthode de conception de couche de modèle Django
La couche de modèle Django est une description du modèle de données dans une application Web. Elle utilise la technologie de mappage objet-relationnel (ORM) pour implémenter les opérations de base de données. Dans Django, la conception de la couche modèle est l'une des clés du développement d'applications Web. Voici une brève introduction à la méthode de conception de la couche modèle Django :
Les modèles dans Django sont décrits à l'aide de classes Python, et chaque classe correspond à une table de base de données. Par exemple, la création d'un modèle appelé "Book" pourrait ressembler à ceci :
from django.db import models class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=50) publish_date = models.DateField()
Les définitions de champs de modèle dans Django utilisent la classe Field intégrée de Django et spécifient les paramètres pertinents, tels que :
Par exemple, définir un champ de caractère nommé "titre" peut être comme suit :
title = models.CharField(max_length=100)
Les modèles dans Django prennent en charge différents types de relations, tels que un-à-plusieurs, plusieurs-à-un, plusieurs-à-plusieurs, etc. Par exemple, définir une relation un-à-plusieurs peut être la suivante :
from django.db import models class Author(models.Model): name = models.CharField(max_length=50) class Book(models.Model): title = models.CharField(max_length=100) author = models.ForeignKey(Author, on_delete=models.CASCADE)
4. Utilisation de la couche de vue et de la couche modèle de Django
La couche de vue et la couche de modèle de Django sont les éléments essentiels du traitement des données et du rendu des pages dans les applications Web. . La couche d'affichage est chargée de recevoir les demandes, de traiter les données et de transmettre les données à la couche modèle pour le rendu des pages. Ce qui suit est une brève introduction à l'utilisation de la couche de vue et de la couche modèle de Django :
Les définitions de vue dans Django utilisent les fonctions Python. Le premier paramètre de la fonction est l'objet de requête, qui est utilisé pour recevoir la requête. paramètres. Exemple :
from django.shortcuts import render def index(request): books = Book.objects.all() return render(request, 'index.html', {'books': books})
Les modèles dans Django utilisent des balises et des filtres personnalisés HTML et Django, prenant en charge le rendu dynamique et la substitution de variables. Par exemple, la définition d'un modèle nommé "index.html" peut être la suivante :
{% for book in books %} <p>{{ book.title }} - {{ book.author.name }}</p> {% endfor %}
La définition d'URL dans Django utilise des expressions régulières pour mapper l'adresse URL à la fonction d'affichage correspondante. Par exemple :
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ]
5. Traitement et validation du formulaire Django
.Django表单处理和验证是Web应用程序中接收用户输入和数据验证的重要部分。Django提供了一系列表单处理和验证功能,以下是Django表单处理和验证的简要介绍:
Django中的表单定义使用继承自Django内置Form类的Python类,每个类对应一个表单。例如,定义一个名为“LoginForm”的表单可以如下所示:
from django import forms class LoginForm(forms.Form): username = forms.CharField(max_length=100) password = forms.CharField(max_length=100, widget=forms.PasswordInput)
Django中的表单处理使用视图函数中的request.POST属性,用于接收表单提交的数据。例:
from django.shortcuts import render, redirect from .forms import LoginForm def login(request): if request.method == 'POST': form = LoginForm(request.POST) if form.is_valid(): # 处理登录 pass else: form = LoginForm() return render(request, 'login.html', {'form': form})
Django中的表单验证使用form.cleaned_data属性,用于验证表单数据是否合法。若验证失败,会抛出ValidationError异常。例:
def clean_password(self): password = self.cleaned_data.get('password') if len(password) < 6: raise forms.ValidationError('密码长度不能小于6') return password
六、Django用户认证和权限管理
Django用户认证和权限管理是Web应用程序中用户登录和授权的核心部分。Django提供了一系列认证和权限管理功能,以下是Django用户认证和权限管理的简要介绍:
Django中的用户认证使用Django内置的auth模块,包括用户注册、登录、退出等操作。例如,用户登录验证可以如下所示:
from django.contrib import auth def login(request): ... user = auth.authenticate(username=username, password=password) if user is not None and user.is_active: auth.login(request, user) return redirect('index') ...
Django中的权限管理使用Django内置的auth模块,包括用户权限设置、用户组设置等操作。例如,定义一个管理员用户组可以如下所示:
from django.contrib.auth.models import Group, Permission group = Group(name='admin') group.save() permission = Permission.objects.get(codename='can_add_book') group.permissions.add(permission)
七、Django REST框架开发
Django REST框架是基于Django的RESTful Web服务开发框架,提供了丰富的REST API开发功能。以下是Django REST框架开发的简要介绍:
使用pip命令安装Django REST框架:
pip install djangorestframework
Django REST框架中的视图使用Django内置的APIView类和ViewSet类。例如,定义一个BookViewSet视图集合可以如下所示:
from rest_framework import viewsets from .serializers import BookSerializer from .models import Book class BookViewSet(viewsets.ModelViewSet): queryset = Book.objects.all() serializer_class = BookSerializer
Django REST框架中的序列化器使用Django内置的Serializer类,用于将模型数据转换为JSON格式。例如,定义一个名为“BookSerializer”的序列化器可以如下所示:
from rest_framework import serializers from .models import Book class BookSerializer(serializers.ModelSerializer): class Meta: model = Book fields = '__all__'
通过以上介绍,相信读者对于使用Python和Django构建Web应用程序有了更好的理解和认识。当然,这些内容只是冰山一角,想要深入学习Django框架、了解更多的实现方法和应用场景,需要不断自学和实践。
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!