- Django est un framework de Python fait pour le WEB
- Il est autant bon pour le Back-End que pour le Front-End (Comme Javascript, pas comme PHP)
- Il a besoin d’une micro base de données pour fonctionner correctement
- Il fonctionne très bien avec SQLite, il n’a pas besoin de plus pour des petits projets
- Il fonctionne par “Applications” ou “Views” comme en Android, une View est une fonctionnalité
- Chaque View a son propre dossier avec ses éléments
-
- Il est utilisé par de grosses entités pour des applications tels que :
- Firefox (la partie Sync est un bon exemple)
- Site de la NASA
- YouTube
- Et beaucoup d’autres (Probablement parce que c’est du Python et donc très rapide)
- Python installé
- Un Code Editor (VS Code est bon)
- Un dossier dans Documents avec le nom de votre choix
- CMD
- PIP installé
Cette partie doit être effectuée depuis CMD dans le dossier créé dans Documents
- Aller dans le dossier avec CMD
- Exécuter la commande
py -m venv env
dans CMD (env
est le nom basique, mais on peut mettreDjango
pour qu’on sache que c’est en rapport avec Django)
Il est préférable de faire ça car plusieurs projets en Python n’ont pas les mêmes dépendances, donc avoir un environnement virutel avec juste les projets qui ont besoin de ces paramètres là est mieux (dans ce cas là un environnement basé sur Django plutôt)
- Attendre quelques instants que ça se crée
- Exécuter la command
env\Scripts\activate
dans CMD, un petit(env)
va apparaître devant le chemin - Installer Django avec
pip install django
dans CMD
Toujours dans le même dossier dans Documents
- Dans CMD faire
django-admin startproject nomduprojet
-
- Entrer dans le dossier du projet avec
cd nomduprojet
- Faire
dir
dans CMD permet de voir ce qu’il y a, ce qui nous intéresse le plus dans ce cas est lemanage.py
- Entrer dans le dossier du projet avec
Avant de commencer à faire des modifications il y a deux trois choses à faire pour comprendre comment fonctionne Django
- Toujours dans CMD exécuter
python manage.py migrate
, cela va créer la base de données - Créer un superuser avec
python manage.py createsuperuser
puis remplir les différentes questions
- Dans CMD exécuter
python manage.py runserver
- Dans le navigateur aller à l’adresse donnée par CMD (normalement 127.0.0.1:8000) et ajouter /admin à l’adresse 127.0.0.1/admin
- Se connecter avec le compte créé auparavant
- Dans CMD faire Ctrl + C pour stopper le serveur
- Ouvrir le projet dans le Code Editor
- Dans CMD exécuter
python manage.py startapp helloworld
(cela va créer une View nommée helloworld) - Dans
\helloworld\views.py
créer la fonctionhello(request)
et ajouter les imports
# \helloworld\views.py
from django.shortcuts import render from django.http import HttpResponse # Create your views here.
def hello(request): return HttpResponse('Hello World!')
- Dans
\nomduprojet\urls.py
importer la View helloworld
# \nomduprojet\urls.py
from django.contrib import admin from django.urls import path from helloworld.views import hello
urlpatterns = [ path('admin/', admin.site.urls), path('', hello), ]
Note : Si le but est d’ajouter un sous dossier à l’arboresence on ajouterait le chemin voulu entre les crochets, un user/
peut être ajouté pour les settings de l’utilisateur par exemple, si rien est ajouté, ça compte comme root
Note 2 : Le hello
après la virgule est en réalité le nom de la fonction voulue dans la view helloworld
- Lancer le serveur à nouveau avec
python manage.py runserver
et retourner sur le navigateur mais sans le/admin
cette fois
Note : Le texte affiché sur le navigateur est évidemment de l’HTML, il est donc possible de mettre <h1>Hello World!</h1>
à la place du simple Hello World!
(N’importe quelle balise fonctionne)
Django a l’avantage d’être en Python et donc très rapide, il permet tout autant de faire du Front-End (La partie utilisateur) que du Back-End (Les coulisses), comme Javascript avec NodeJS.
Un désavantage est que Django a une arborescence immense pour un simple projet, pour ce simple hello world il faut un dossier root et 2 sous dossiers avec chacuns plusieurs fichiers.
L’avantage de l’arborescence pre-définie est qu’il n’y a pas besoin de réfléchir à l’arborescence.
Django a un Admin Panel intégré et modifiable à souhaits.
Screenshot fait sur cette page de StackShare
Screenshot fait sur cette page de StackShare
Il faut prendre en compte que de base PHP n’a pas le même but que Django et JavaScript
Le site nous le fait comprendre, mais si on enlève PHP a la comparaison il ne se plaint plus, pourquoi ? Parce que PHP est un langage fait pour le Back-End et que Django est Front-End + Back-End (JavaScript l’est ou ne l’est pas selon si NodeJS est aussi sur la machine), si l’on compare avec PHP-MVC il ne met pas cette avertissement, mais PHP-MVC n’est pas un projet complet, et il n’a aucune remarque, ce qui veut dire que quasi personne ne l’utilise.
- Written by Khodok
- Khoding (Khodok’s Github)
- Final result of a full project using Django (Python Framework) : Khodok’s Blog.
Written with StackEdit.