Maison  >  Article  >  développement back-end  >  Création d'applications Web avec Python et Django : guide de maîtrise du débutant

Création d'applications Web avec Python et Django : guide de maîtrise du débutant

王林
王林original
2023-06-23 09:34:321021parcourir

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
  2. Introduction au framework Django
  3. Méthode de conception de couche de modèle Django
  4. Utilisation de la couche de vue et de la couche modèle Django
  5. Traitement et validation des formulaires Django
  6. Authentification des utilisateurs et gestion des autorisations Django
  7. Développement du framework Django REST

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 :

  1. Variables et types de données

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}
  1. Instructions conditionnelles

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")
  1. Instructions de boucle

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
  1. Fonctions et modules

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 :

  1. Livré avec un backend de gestion : Django est livré avec un backend de gestion pratique et facile à utiliser qui peut être utilisé pour gérer diverses tables de données dans des applications Web.
  2. Extensible : Le framework Django a une bonne évolutivité et peut facilement intégrer d'autres modules fonctionnels.
  3. Système de modèles : Django dispose d'un puissant système de modèles intégré qui peut facilement implémenter le traitement des modèles et le rendu des pages dans les applications Web.
  4. Prise en charge des bases de données : Django prend en charge la persistance des données dans plusieurs bases de données (MySQL, SQLite, etc.).
  5. Sécurité : Django fournit une série de fonctionnalités de sécurité, telles que la prévention des injections SQL, des attaques XSS, etc.

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 :

  1. Création de modèles

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()
  1. Define Fields

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 :

  • CharField : Champ de type de caractère
  • IntegerField : Champ entier
  • DateField : Champ de date
  • DateTimeField : Champ de date et d'heure
  • BooleanField : Champ booléen

Par exemple, définir un champ de caractère nommé "titre" peut être comme suit :

title = models.CharField(max_length=100)
  1. Définir des relations

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 :

  1. Définition des vues

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})
  1. Définir des modèles

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 %}
  1. Define URL

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表单处理和验证的简要介绍:

  1. 定义表单

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)
  1. 处理表单

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})
  1. 表单验证

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用户认证和权限管理的简要介绍:

  1. 用户认证

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')
    ...
  1. 权限管理

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框架开发的简要介绍:

  1. 安装Django REST框架

使用pip命令安装Django REST框架:

pip install djangorestframework
  1. 定义视图

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
  1. 定义序列化器

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!

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