Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
python:django:demarrage [2021/11/24 09:23] marclebrun créée |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Démarrage ====== | ||
- | |||
- | ===== Installer Django ===== | ||
- | |||
- | Créer un environnement virtuel : | ||
- | |||
- | <code bash> | ||
- | python3 -m venv venv | ||
- | </code> | ||
- | |||
- | Ne pas oublier de l'activer : | ||
- | |||
- | <code bash> | ||
- | . venv/bin/activate | ||
- | </code> | ||
- | |||
- | Installer Django : | ||
- | |||
- | <code bash> | ||
- | pip install django | ||
- | </code> | ||
- | |||
- | Vérifier l'installation : | ||
- | |||
- | <code bash> | ||
- | python -m django --version | ||
- | 3.2.9 | ||
- | </code> | ||
- | |||
- | => Au moment d'écrire ces lignes c'est la version **3.2.9** qui est installée. | ||
- | |||
- | ===== Démarrer un nouveau projet ===== | ||
- | |||
- | <code bash> | ||
- | django-admin startproject mon_projet | ||
- | </code> | ||
- | |||
- | La structure de base du projet est créée dans un dossier **mon_projet** : | ||
- | |||
- | <code> | ||
- | ./mon_projet | ||
- | ├── manage.py | ||
- | └── test1 | ||
- | ├── asgi.py | ||
- | ├── __init__.py | ||
- | ├── settings.py | ||
- | ├── urls.py | ||
- | └── wsgi.py | ||
- | </code> | ||
- | |||
- | ===== Démarrer le serveur local ===== | ||
- | |||
- | <code bash> | ||
- | cd mon_projet/ | ||
- | manage.py runserver | ||
- | </code> | ||
- | |||
- | Visiter la page [[http://localhost:8000]] | ||
- | |||
- | ===== Démarrer une nouvelle application ===== | ||
- | |||
- | Un projet est composé de plusieurs applications. | ||
- | |||
- | Création d'une application nommée **blog** dans le projet **mon_projet** : | ||
- | |||
- | <code bash> | ||
- | ./manage.py startapp blog | ||
- | </code> | ||
- | |||
- | L'application est créée dans un sous-dossier au même niveau que le projet : | ||
- | |||
- | <code> | ||
- | ./mon_projet | ||
- | ├── blog | ||
- | │ ├── admin.py | ||
- | │ ├── apps.py | ||
- | │ ├── __init__.py | ||
- | │ ├── migrations | ||
- | │ │ └── __init__.py | ||
- | │ ├── models.py | ||
- | │ ├── tests.py | ||
- | │ └── views.py | ||
- | ├── db.sqlite3 | ||
- | ├── manage.py | ||
- | └── test1 | ||
- | ├── asgi.py | ||
- | ├── __init__.py | ||
- | ├── settings.py | ||
- | ├── urls.py | ||
- | └── wsgi.py | ||
- | </code> | ||
- | |||
- | ===== Ajouter une vue et une route ===== | ||
- | |||
- | La vue est une fonction dans le **views.py** de l'application : | ||
- | |||
- | <code python ./mon_projet/blog/views.py> | ||
- | from django.shortcuts import render | ||
- | from django.http import HttpResponse | ||
- | |||
- | def home(request): | ||
- | return HttpResponse('<h1>Blog Home</h1>') | ||
- | </code> | ||
- | |||
- | Ajouter la route dans le **urls.py** de l'application : | ||
- | |||
- | <code python ./mon_projet/blog/urls.py> | ||
- | from django.urls import path | ||
- | from . import views | ||
- | |||
- | urlpatterns = [ | ||
- | path('', views.home, name='blog-home'), | ||
- | ] | ||
- | </code> | ||
- | |||
- | Ensuite ajouter la route de base de l'application dans le **urls.py** du projet : | ||
- | |||
- | <code python ./mon_projet/mon_projet/urls.py> | ||
- | from django.contrib import admin | ||
- | from django.urls import path, include | ||
- | |||
- | urlpatterns = [ | ||
- | path('admin/', admin.site.urls), | ||
- | path('blog/', include('blog.urls')), | ||
- | ] | ||
- | </code> | ||