mirror of
https://github.com/buchtioof/notes.git
synced 2026-05-02 09:33:28 +02:00
added django course 16/02
This commit is contained in:
parent
1c0ef9c217
commit
436ae44ada
81
docs/learn/devops/2026-02-16.md
Normal file
81
docs/learn/devops/2026-02-16.md
Normal file
@ -0,0 +1,81 @@
|
||||
# Django en gros (16/02/2026)
|
||||
|
||||
## 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 api`
|
||||
|
||||
## 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
|
||||
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.
|
||||
|
||||
!!! note "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
|
||||
|
||||
```html
|
||||
<!-- 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.
|
||||
|
||||
!!! note "Par exemple"
|
||||
|
||||
Appeler la racine (localhost:5000/) doit être routé comme ceci :
|
||||
|
||||
```python
|
||||
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'),
|
||||
]
|
||||
```
|
||||
|
||||
@ -19,7 +19,7 @@ Pour fonctionner, grabber a plusieures tâches réparties par différents élém
|
||||
|
||||
- Bash -> Script qui fetch et lance la console admin
|
||||
- Python
|
||||
- uvicorn -> pour host le site admin en local
|
||||
- Django -> pour host le site admin en local
|
||||
|
||||
## Avancement
|
||||
|
||||
|
||||
@ -57,6 +57,7 @@ nav:
|
||||
- learn/devops/2025-12-12.md
|
||||
- learn/devops/2026-01-16.md
|
||||
- learn/devops/2026-01-22.md
|
||||
- learn/devops/2026-02-16.md
|
||||
- ☕ Javascript:
|
||||
- learn/javascript/2026-01-30.md
|
||||
- learn/javascript/2026-02-06.md
|
||||
|
||||
@ -556,6 +556,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/learn/devops/2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@ -622,6 +622,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="learn/devops/2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@ -628,6 +628,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@ -678,6 +678,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@ -728,6 +728,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@ -639,6 +639,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
<link rel="prev" href="../2026-01-16/">
|
||||
|
||||
|
||||
<link rel="next" href="../../javascript/2026-01-30/">
|
||||
<link rel="next" href="../2026-02-16/">
|
||||
|
||||
|
||||
|
||||
@ -700,6 +700,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
1291
site/learn/devops/2026-02-16/index.html
Normal file
1291
site/learn/devops/2026-02-16/index.html
Normal file
File diff suppressed because one or more lines are too long
@ -9,7 +9,7 @@
|
||||
|
||||
|
||||
|
||||
<link rel="prev" href="../../devops/2026-01-22/">
|
||||
<link rel="prev" href="../../devops/2026-02-16/">
|
||||
|
||||
|
||||
<link rel="next" href="../2026-02-06/">
|
||||
@ -567,6 +567,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../devops/2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@ -567,6 +567,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../devops/2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@ -567,6 +567,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../devops/2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@ -563,6 +563,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../learn/devops/2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@ -565,6 +565,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../learn/devops/2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
@ -1079,7 +1107,7 @@
|
||||
<ul>
|
||||
<li>Bash -> Script qui fetch et lance la console admin</li>
|
||||
<li>Python<ul>
|
||||
<li>uvicorn -> pour host le site admin en local</li>
|
||||
<li>Django -> pour host le site admin en local</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -565,6 +565,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../learn/devops/2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@ -565,6 +565,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../learn/devops/2026-02-16/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Django en gros (16/02/2026)
|
||||
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
@ -847,7 +875,7 @@
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Faire un portfolio en JS avec React/Vite
|
||||
Faire un portfolio en JS moderne
|
||||
|
||||
|
||||
|
||||
@ -865,7 +893,7 @@
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Faire un portfolio en JS avec React/Vite
|
||||
Faire un portfolio en JS moderne
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user