Django crée le premier projet
Dans ce chapitre, nous présenterons l'outil de gestion Django et comment utiliser Django pour créer des projets. Pour le premier projet, nous le nommons HelloWorld.
Notes de version de test :
-
Python 3.9.7
-
Django 4.2.7
Vous pouvez vérifier le numéro de version avec la commande suivante :
# python3 -V Python 3.9.7 # python3 -m django --version 4.2.7
Outil de gestion Django
Après avoir installé Django, vous devriez maintenant avoir l'outil de gestion disponible.django-admin, si Windows n'a pas configuré les variables d'environnement, vous pouvez utiliserdjango-admin。
Jetons un coup d'œil à l'introduction des commandes django-admin :
$ django-admin
Type 'django-admin help <subcommand>' for help on a specific subcommand.
Available subcommands:
[django]
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
runserver
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver
……省略部分……
Création du premier projet
Utilisez django-admin pour créer le projet HelloWorld :
django-admin startproject HelloWorld
Après la création, nous pouvons consulter la structure du répertoire du projet :
$ cd HelloWorld/
$ tree
HelloWorld/ # 项目根目录
├── manage.py # 项目管理脚本
├── db.sqlite3 # SQLite 数据库文件
├── __pycache__/ # Python 字节码缓存
└── HelloWorld/ # 项目配置目录(与项目同名)
├── __init__.py # 包标识文件
├── settings.py # 项目设置
├── urls.py # 主路由配置
├── asgi.py # ASGI 配置
└── wsgi.py # WSGI 配置
Répertoire racine du projet (HelloWorld/) :
| Fichier/répertoire | Fonction |
|---|---|
manage.py | Point d'entrée de l'outil en ligne de commande Django, utilisé pour exécuter le serveur de développement, les migrations de base de données et d'autres opérations. |
db.sqlite3 | Fichier de base de données SQLite (base de données par défaut, utilisée dans l'environnement de développement). |
__pycache__/ | Répertoire de cache de bytecode Python (généré automatiquement, aucune modification manuelle nécessaire). |
Répertoire de configuration principal du projet (HelloWorld/HelloWorld/) :
| Fichier/répertoire | Fonction |
|---|---|
__init__.py | Fichier vide, indique à Python que ce répertoire est un paquet. |
settings.py | Fichier de configuration principal, comprenant : - Paramètres de base de données ( DATABASES)- Chemins des fichiers statiques ( STATIC_URL)- Enregistrement des applications ( INSTALLED_APPS)- Mode débogage ( DEBUG=True/False) |
urls.py | Fichier de configuration principal des routes, définit la relation de mappage entre les chemins URL et les vues. |
asgi.py | Configuration du serveur ASGI (utilisée pour les serveurs web asynchrones, tels que Daphne). |
wsgi.py | Configuration du serveur WSGI (pour les serveurs web traditionnels, tels que Gunicorn, uWSGI). |
Ensuite, nous entrons dans le répertoire HelloWorld et exécutons la commande suivante pour démarrer le serveur :
python3 manage.py runserver 0.0.0.0:8000
0.0.0.0 permet à d'autres ordinateurs de se connecter au serveur de développement, et 8000 est le numéro de port. S'il n'est pas spécifié, le numéro de port par défaut est 8000.
Saisissez l'adresse IP de votre serveur dans le navigateur (ici, nous saisissons l'adresse IP locale :127.0.0.1:8000) et le numéro de port. S'il démarre normalement, la sortie est la suivante :

Explication détaillée des fichiers clés
1. settings.py (configuration principale)
Exemple
# Avertissement de sécurité : DEBUG doit être désactivé en production !
DEBUG = True
# Noms de domaine autorisés (doivent être configurés lorsque DEBUG=False)
ALLOWED_HOSTS = []
# Applications Django enregistrées
INSTALLED_APPS = [
'django.contrib.admin', # Backend d'administration
'django.contrib.auth', # Système d'authentification
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles', # Gestion des fichiers statiques
]
# Configuration de la base de données (SQLite par défaut)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3', # Chemin du fichier de base de données
}
}
# URL des fichiers statiques (CSS/JS/images)
STATIC_URL = 'static/'
2. urls.py (configuration du routage)
Exemple
from django.contrib import admin
from django.urls import path
url = [
path('admin/', admin.site.urls), # Routes de gestion du backend
# Vous pouvez ajouter des routes personnalisées ici, par exemple :
# path('blog/', include('blog.urls')),
]
3. manage.py (script de gestion de projet)
Exemple
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "HelloWorld.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
Vues et configuration des URL
Dans le répertoire HelloWorld créé précédemment, créez un nouveau fichier views.py dans le répertoire HelloWorld et saisissez le code :
Code du fichier HelloWorld/HelloWorld/views.py :
Ensuite, liez l'URL à la fonction de vue. Ouvrez le fichier urls.py, supprimez le code d'origine, puis copiez et collez le code suivant dans le fichier urls.py :
Code du fichier HelloWorld/HelloWorld/urls.py :
La structure complète du répertoire est la suivante :
$ tree . |-- HelloWorld | |-- __init__.py | |-- __init__.pyc | |-- settings.py | |-- settings.pyc | |-- urls.py # url 配置 | |-- urls.pyc | |-- views.py # 添加的视图文件 | |-- views.pyc # 编译后的视图文件 | |-- wsgi.py | `-- wsgi.pyc `-- manage.py
Une fois terminé, démarrez le serveur de développement Django et accédez-y dans le navigateur. Ouvrez le navigateur et rendez-vous sur :
Nous pouvons également modifier les règles suivantes :
Code du fichier HelloWorld/HelloWorld/urls.py :
Ouvrez dans le navigateurhttp://127.0.0.1:8000/hello, et le résultat est le suivant :

Remarque :Si le code du projet est modifié, le serveur détectera automatiquement les modifications du code et rechargera automatiquement, donc si vous avez déjà démarré le serveur, vous n'avez pas besoin de le redémarrer manuellement.
Fonction path()
Django path() peut accepter quatre paramètres : deux paramètres obligatoires : route, view, et deux paramètres facultatifs : kwargs, name.
Syntaxe :path(route, view, kwargs=None, name=None)
route:Une chaîne définissant la partie chemin de l'URL. Elle peut contenir des variables, par exemple
<int:my_variable>, pour capturer les paramètres de l'URL et les transmettre à la fonction de vue.view:Fonction de vue, gère les requêtes correspondant à la route donnée. Elle peut être une fonction ou une vue basée sur une classe.
kwargs (optionnel):Un dictionnaire contenant des arguments nommés supplémentaires transmis à la fonction de vue.
name (optionnel):Spécifie un nom unique pour la route URL afin qu'elle puisse être référencée ailleurs dans le code. Ceci est très utile pour générer des URL dans les gabarits ou effectuer des redirections dans le code.
Dans Django 2.0, la méthode re_path() peut être utilisée pour être compatible avec la méthodeurl(), et certaines règles d'expression régulière peuvent également être implémentées via re_path().
from django.urls import include, re_path
urlpatterns = [
re_path(r'^index/$', views.index, name='index'),
re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),
re_path(r'^weblog/', include('blog.urls')),
...
]autres extensions