Écosystème d'une application Django

Cette page a pour vocation de présenter l'écosystème d'une application Django, c'est à dire les composants logiciels qui sont liés au bon fonctionnement d'une telle appli : serveur, bases de données, langages

Python

Article

Django est un framework Python : en d'autres termes, tout le code réutilisable qu'il définit est écrit en Python, et les applications développées en Django sont composées de code Python.

Vous devez donc vous assurer de disposer de Python sur votre machine de développement (ce qui n'est généralement qu'une formalité…).

Une introduction à Python, nécessaire avant de vous lancer dans un projet Django si vous n'avez jamais pratiqué le langage, vous est proposée dans une section dédiée du site : apprendre Python.

Serveur

Article

Les applications Django sont des applications web, ce qui implique que pour être exécutées, elles doivent êtres prises en charge par un serveur (Apache, Gunicorn…).

À noter que Django est livré avec un serveur de développement très simple et automatiquement disponible dans tout projet Django, permettant de tester les applications lors de leur développement sans avoir à installer/administrer de serveur spécifique. Ce serveur n'a pas vocation à être utilisé en production.

Bases de données

Article

Un projet Django ne nécessite pas forcément la mise en œuvre d'une base de données. Néanmoins, une application web a généralement besoin de stocker et requêter des données, et la mise en place d'une BDD est plus que fréquente.

L'ORM de Django supporte, de manière transparente et native, différents SGBD : MySQL, Oracle, PostgreSQL, SQLite

À vous de choisir quel SGBD vous correspond le mieux !

Outils en ligne de commande

Tout projet Django est automatiquement « équipé », lors de sa création, d'outils en ligne de commande permettant de réaliser différentes opérations au sein du projet : création des tables de base de données, lancement du serveur de développement, etc.

Voici un exemple d'utilisation de ces commandes : la commande de création même d'un projet (dont nous reparlerons plus tard) :

django-admin.py startproject miage
cd miage/
python manage.py syncdb
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'pascallando'):
Email address: pascal.lando@u-picardie.fr
Password:
Password (again):
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

Testez vos connaissances

Comment déploie-t-on une application Django sur une machine connectée à Internet ?
  • On commence par installer un serveur Python.
  • On installe un serveur comme Apache sur la machine, puis on paramètre ce serveur pour qu'il puisse servir les script Python.
  • On ne peut pas déployer une application Django.
  • On commence par installer Python et Django sur le serveur.
  • Il faut systématiquement installer la JVM pour pouvoir déployer Django.
Est-ce qu'on peut utiliser le serveur de développement Django pour des applications de production ?
  • Oui
  • Non

Le serveur de développement proposé avec Django n'est pas du tout optimisé pour de la production : il sert simplement à débugger les applis en développement.

« Django est un framework Python », qu'est-ce que ça signifie ?
  • Django est codé en Python.
  • Python est codé en Django.
  • Django utilise des librairies Python.
  • Python utilise des librairies Django.
  • Une application Django a besoin de Python pour fonctionner.
  • Celà signifie simplement que Django reprend les design patterns implémentés en Python.