Skip to content

Django en gros

Commencer un projet Django

Pour commencer un projet Django, c'est super simple :

-> D'abord, créer un dossier de projet

`mkdir projet`

-> Ensuite créer un environnement virtuel Python puis installer Django via pip

`python3 -m venv "projetvenv" && source projetvenv/bin/activate && pip install django`

-> Maintenant, créer le projet Django dans ce dossier (le point à la fin indique que l'on crée dans ce dossier le projet)

`django-admin startproject config .`

-> On peut maintenant travailler dans notre projet Django

Projet et applications

Django fonctionne sur l'utilisations de petits modules appelés "Applications", ceux-ci composent un projet Django. Elles peuvent être des composants gèrant une API qui prend des données JSON pour les mettre dans une BDD SQL comme dans le projet Grabber ou encore plein d'autres cas...

Note

En gros, on a un projet (dossier "config") dans lequel on gère les réglages généraux de Django (serveur, adresses, ect...) et des applications (dans leurs dossiers propres) qui gèrent leurs tâches propres à elles

Pour créer une Application on utilise cette commande -> python manage.py startapp nomdel'app

Fonctionnement d'une Application

Une application se divise avec un fonctionnement en 3 parties

Modèle <--> Vue -> Template

Modèle

Le Modèle sera la partie manipulation d'objets (comme en PhP), dans le projet Grabber, Django s'occupera de créer la DB sql via ce module

Warning

Quand on travaille sur le fichier models.py (généralement celui qui s'occupe de ce module) on doit utiliser deux commandes qui construisent le modèle

python manage.py makemigrations
python manage.py migrate

Vue

La Vue ici, c'est un peu le cerveau du projet, il reçoit les requêtes (par exemple, l'utilisateur qui demande une URL ou alors un fichier bash qui envoie des données comme avec Grabber) et peut renvoyer ces requêtes au Modèle pour avoir un résultat, etc...

Template

Le template, c'est l'interface, par exemple des fichiers HTML. Il reçoit les données brutes de la Vue et les affiche proprement dans une jolie page web.

Utiliser les données brutes dans une template

Pour se faire, on doit utiliser cette balise {{ ... }} dans le HTML, cela veut dire pour Django que l'on récupère les données d'une clé spécifique

<!-- Dans les crochets, on appelle la donnée "hostname" de la table "data"-->
<title>{{ data.hostname }} - Grabber</title>

URLs

Un autre composant très important dans Django, c'est les URLs. C'est un fichier dans lequel on doit router ce que telle url dans le navigateur doit effectuer.

Par exemple

Appeler la racine (localhost:5000/) doit être routé comme ceci :

from django.urls import path
from api import views

urlpatterns = [
    # Route de la racine qui appelle la fonction computers_list
    path('', views.computers_list, name='computers'),
]