Intro à Django

The web framework for perfectionists with deadlines

The web framework for ponies with magical powers

The web framework for perfectionists with deadlines

GET /wiki/La_Jungle_(roman)HTTP/1.1
Host: fr.wikipedia.org
Accept: text/html
...

Verbe

Chemin

Requête HTTP

HTTP/1.1 200 OK
Content-Type: text/html

<html>
  <head>
    ...

Code de statut

Réponse HTTP

La plupart des sites web ont besoin de…

  • Enregistrer des données
  • Lire des requêtes HTTP et envoyer des réponses HTTP
  • Générer du code HTML

Django est un système MVT

✅ Pour enregistrer des données

Modèle

Vue

Template

✅ Pour lire des requêtes HTTP et renvoyer des réponses HTTP

✅ Pour générer du code HTML

Mais pourquoi Django ?

  • Basé sur Python
  • Extrêmement flexible
  • Rapide et sécurisé
  • Fournit plein de fonctionnalités très pratiques

Interface d’administration automatique 😍

Exemple de modèle

from django.db import models
from django.utils import timezone

class Article(models.Model):
    title = models.CharField(max_length=100)
    body = models.TextField()
    created_at = models.DateField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)

Un article est composé d’un titre, d’un corps de texte, d’une date de création, et d’un auteur

Exemple de vue

from django.shortcuts import render
from .models import Article

def article_detail(request, article_id):
    article = Article.objects.get(id=article_id)
    
    return render(request, "article_detail.html", {
      "article": article
    })

Exemple de template

{% extends "base.html" %}

{% block content %}
  <h1>{{ article.title }}</h1>
  
  {{ article.body }}
{% endblock %}

https://docs.djangoproject.com/fr/3.2/topics/templates/

Brancher la vue à Django

from articles import views

urlpatterns = [
  path("article/<int:article_id>/", views.article_detail)
]

À vous de jouer ! 🚀

Intro à Django

By Sylvain Roflmao

Intro à Django

  • 213