Skip to content

Instantly share code, notes, and snippets.

@Khoding
Last active April 13, 2020 21:31
Show Gist options
  • Save Khoding/cbbdf86ace3711efc4cdf839b46f0dc3 to your computer and use it in GitHub Desktop.
Save Khoding/cbbdf86ace3711efc4cdf839b46f0dc3 to your computer and use it in GitHub Desktop.
django first steps

Django Hello World

Fonctionnement de Django

  • 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 :
    Instagram
    Firefox (la partie Sync est un bon exemple)
    Pinterest
    Site de la NASA
    Google
    YouTube
    Facebook
    Et beaucoup d’autres (Probablement parce que c’est du Python et donc très rapide)

Elements requis

  • Python installé
  • Un Code Editor (VS Code est bon)
  • Un dossier dans Documents avec le nom de votre choix
  • CMD
  • PIP installé

Créer un environnement virtuel

Cette partie doit être effectuée depuis CMD dans le dossier créé dans Documents

  1. Aller dans le dossier avec CMD
  2. Exécuter la commande py -m venv env dans CMD (env est le nom basique, mais on peut mettre Django 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)

  1. Attendre quelques instants que ça se crée
  2. Exécuter la command env\Scripts\activate dans CMD, un petit (env) va apparaître devant le chemin
  3. Installer Django avec pip install django dans CMD

Créer le projet

Toujours dans le même dossier dans Documents

  1. Dans CMD faire django-admin startproject nomduprojet
  2. Entrer dans le dossier du projet avec cd nomduprojet
    Faire dirdans CMD permet de voir ce qu’il y a, ce qui nous intéresse le plus dans ce cas est le manage.py

Administrer le projet

Avant de commencer à faire des modifications il y a deux trois choses à faire pour comprendre comment fonctionne Django

  1. Toujours dans CMD exécuter python manage.py migrate, cela va créer la base de données
  2. Créer un superuser avec python manage.py createsuperuser puis remplir les différentes questions

Lancer le serveur et aller dans la section administrateur

  1. Dans CMD exécuter python manage.py runserver
  2. 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
  3. Se connecter avec le compte créé auparavant

Hello World!

  1. Dans CMD faire Ctrl + C pour stopper le serveur
  2. Ouvrir le projet dans le Code Editor
  3. Dans CMD exécuter python manage.py startapp helloworld (cela va créer une View nommée helloworld)
  4. Dans \helloworld\views.py créer la fonction hello(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!')

  1. 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

  1. 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)

Avantages / Désavantages

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.

Comparaisons par des gens qui utilisent Django, JS / NodeJS ou PHP (Most Upvoted only)

Comparaison Django JavaScript PHP

Screenshot fait sur cette page de StackShare

Comparaison Django Node.js PHP

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
Prévention
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.


Khodok's Logo

Written by Khodok
Khoding (Khodok’s Github)
Final result of a full project using Django (Python Framework) : Khodok’s Blog.

Written with StackEdit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment