Maison > Article > développement back-end > Premiers pas avec Django : un didacticiel de framework Web Python procédural
Django est un framework Web Python open source hautement évolutif et flexible. Il adopte le modèle de conception « Model-View-Controller (MVC) » pour rendre le développement d'applications Web rapide et efficace. Cet article fournira une introduction détaillée aux connaissances de base de Django, à l'importation et à l'installation de Django, à la création d'une base de données, à la construction de modèles et à la création de vues pour aider les débutants à maîtriser Django.
1. Connaissance de base de Django
Les principaux composants de Django incluent : le planificateur d'URL, le moteur de modèles, les vues et la couche d'accès à la base de données, etc. Django prend en charge plusieurs bases de données et utilise les outils ORM (Object Relational Mapping) pour fournir une représentation d'objets et accéder aux bases de données. Il prend en charge plusieurs serveurs Web en même temps, tels qu'Apache, Nginx, etc. Django fournit également une multitude de fonctions et de composants, tels que le backend de gestion, le traitement des formulaires, l'internationalisation, la sécurité et l'authentification, etc.
2. Importez et installez Django
Avant d'installer Django, vous devez confirmer que Python a été installé avec succès. Il existe deux manières d'installer Django : l'une consiste à utiliser la commande pip (recommandée) et l'autre consiste à télécharger et installer manuellement. Nous présentons ici la méthode d'installation pip.
pip install virtualenv
Ensuite, créez un nouvel environnement virtuel à l'aide de la commande suivante.
virtualenv djangoenv
Dans cet exemple, le nom de l'environnement virtuel est djangoenv.
pip install Django
Cette commande téléchargera automatiquement la dernière version et l'installera dans le répertoire site-packages de l'environnement virtuel.
3. Créer une base de données
Django prend en charge plusieurs systèmes de bases de données, tels que MySQL, PostgreSQL, etc. Dans cet article, nous utiliserons la base de données SQLite par défaut. SQLite est déjà installé après l'installation de Python.
django-admin startproject mysite
Dans cet exemple, le nom du projet est mysite.
cd mysite python manage.py startapp blog
Cette commande créera un répertoire nommé blog dans le répertoire racine du projet.
Remarque : Cette commande doit être exécutée dans le répertoire racine du projet.
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
Ce paramètre définit le type de base de données sur SQLite et nomme le fichier de base de données db.sqlite3. Le paramètre DATABASES prend également en charge d'autres bases de données relationnelles telles que MySQL et PostgreSQL.
python manage.py makemigrations python manage.py migrate
Cette commande créera un fichier de base de données et créera les tables nécessaires pour gérer le modèle de base de données pour toutes les applications utilisées par Django.
4. Construction du modèle
Le modèle est l'élément clé du mappage des données à la base de données. Pour utiliser le modèle, nous devons définir une classe Python qui sera utilisée pour définir la table dans la base de données. L'ORM de Django prend en charge de nombreux types de bases de données différents, et pour plus de commodité, nous utiliserons la base de données SQLite dans cet article.
from django.db import models class Blog(models.Model): title = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') body = models.TextField() def __str__(self): return self.title
python manage.py makemigrations blog python manage.py migrate
Cette commande créera une nouvelle table dans la base de données qui contiendra notre modèle de données défini.
5. Création de vue
La vue est la partie où les utilisateurs interagissent avec l'application. Une vue est un ensemble de fonctions qui récupèrent les données du modèle et restituent les résultats au navigateur de l'utilisateur. Dans Django, toutes les vues doivent renvoyer un objet de réponse HTTP. Django fournit également certains types de vues couramment utilisés.
from django.shortcuts import render from django.http import HttpResponse from .models import Blog def index(request): latest_blog_list = Blog.objects.order_by('-pub_date')[:5] context = {'latest_blog_list': latest_blog_list} return render(request, 'blog/index.html', context) def detail(request, blog_id): blog = Blog.objects.get(pk=blog_id) return render(request, 'blog/detail.html', {'blog': blog})
Deux vues sont définies ici : index et détail. La vue index obtiendra les 5 derniers articles de blog et les affichera un par un dans le modèle HTML. La vue détaillée prendra les détails d'un article de blog et les restituera dans un modèle HTML.
index.html
{% if latest_blog_list %} <ul> {% for blog in latest_blog_list %} <li><a href="{% url 'blog:detail' blog.id %}">{{ blog.title }}</a></li> {% endfor %} </ul> {% else %} <p>No blogs are available.</p> {% endif %}
detail.html
<h1>{{ blog.title }}</h1> <p>{{ blog.body }}</p> <p>Published on {{ blog.pub_date }}</p>
from django.urls import path from . import views app_name = 'blog' urlpatterns = [ path('', views.index, name='index'), path('<int:blog_id>/', views.detail, name='detail'), ]
在这个文件中,我们使用URL配置了两个视图函数:index和detail。路径“283b0284c70ce5b35f6a4cddbe3f14e7/”定义了一个变量blog_id,并将其传递给detail视图函数。
六、启动服务器
现在我们已经定义了我们的Django应用程序,我们可以启动服务器并测试它是否正常工作了。在命令行中输入以下命令。
python manage.py runserver
如果一切正常,您将看到以下输出。
Performing system checks... System check identified no issues (0 silenced). September 18, 2021 - 18:13:35 Django version 3.2, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
现在您可以打开浏览器,并输入地址http://127.0.0.1:8000/blog/来访问您的Django网站。
七、总结
本文提供了一个Django入门指南,介绍了Django的基础知识,导入和安装Django,创建数据库,模型构建和视图创建等方面的内容。希望本文能够帮助初学者更好地理解Django,并在他们的Web开发项目中使用它。在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!