Le site d’administration de Django

Le site d’administration de Django

Lors de la création d’applications web, un temps important est consacré à écrire une interface d’administration. Avec Django, en seulement quelques lignes de codes, vous disposez d’une interface d’administration de vos utilisateurs et de vos modèles afin de les gérer comme bon vous semble.

Comment accèder au site d’administration de Django

Pour pouvoir visiter le site d’administration de Django, il faut s’assurer que le serveur de développement est démarré :

Il ne vous reste maintenant que d’accéder à l’adresse suivante : http://127.0.0.1:8000/admin/ pour arriver à  l’interface d’administration, sur la page de connexion :

Le site d’administration de Django

Le site d’administration de Django

Traduire le site d’administration de Django

Par défaut la langue est en anglais, mais vous pouvez définir le français par defaut en changeant la variable LANGUAGE_CODE du fichier settings.py

Le site d’administration de Django (traduction françsaise)

Le site d’administration de Django (traduction françsaise)

Créer votre premier application avec Dajngo

Créer votre premier application avec Dajngo

Projet vs application Django

Un projet est composé d’applications web assemblées, il contient donc le code de chaque application ainsi que du code global au projet. Pour savoir comment créer un projet Django, rendez-vous à la page suivante: Créer votre premier projet avec Dajngo.

Une application est une web-app qui fournit un certain ensemble de fonctionnalités. Une même application peut appartenir à plusieurs projets. Enfin il peut exister des dépendances entre les applications.

Créer votre premier application avec Dajngo

Allez à la racine du projet (là où est installé manage.py) et tapez la commande suivante :

La commande ci-dessus va créer un répertoire monapplication, avec le contenu suivant :

application Django

Le contenu d’une application Django

Nous aurons par la suite besoin à créer d’autres répertoires comme par exemple un répertoire pour les templates de l’application, un autre pour les fichiers statiques de l’application, encore un autre pour les commandes, etc.

Créer votre premier projet avec Dajngo

Créer votre premier projet avec Dajngo

Pour créer un projet, nous allons utiliser Django pour créer l’ossature par défaut d’un projet ainsi que les fichiers de configuration par défaut.

Positionnez-vous dans le répertoire dans lequel vous souhaitez installer vos projets Django ; par exemple sous Mac/Unix/Linux :

cd ~/votre-nom/Django-projects/

ou sous Windows :

puis tapez la commande suivante :

Créer votre premier projet avec Django

Créer votre premier projet avec Django

Après avoir crée votre premier projet avec Dajngo, vous pouvez lister les fichiers que vous venez de créer à l’aide de la commande précédente, vous devriez obtenir ceci :

L’ossature par défaut d’un projet ainsi que les fichiers de configuration par défaut.

L’ossature par défaut d’un projet ainsi que les fichiers de configuration par défaut.

À quoi correspondent ces fichiers ?

  • monprojet : Le répertoire racine monprojet/ contient l’ensemble de votre projet.
  • manage.py : Ce fichier va vous permettre de gérer votre projet Django (configuration, gestion de la base, etc.).
  • monprojet :Le répertoire monprojet/ intérieur (monprojet/monprojet/) est le package Python de votre projet.
  • __init__.py : Ce fichier initialement vide est nécessaire pour que Python reconnaisse ce répertoire comme un package Python valide
  • settings.py : Ce fichier contient  les réglages/configuration de votre projet
  • urls.py : Ce fichier contient les déclarations des URL de votre projet, une sorte de « table des matières » de votre site Django.
  • wsgi.py : Ce fichier est connecteur ou point d’entrée pour les serveurs Web compatibles WSGI il servira lors du déploiement de votre projet.

Lancer le serveur de développement

Le serveur de développement est un serveur minimaliste a pour but de vous aider à développer rapidement, sans avoir à gérer la complexité du déploiement d’un serveur web.

Pour lancer le serveur de développement , positionnez-vous dans le répertoire racine monprojet et tapez la commande :

Vous obtenez :

Lancer le serveur de développement Django

Lancer le serveur de développement Django

Maintenant visitez l’URL http://127.0.0.1:8000/ . Vous obtenez ceci :

Première page web avec Django

Première page web avec Django

Installer Django sous Windows

Installer Django

Avant de pouvoir commencer à utiliser Django, il vous faut d’abord installer Python. Les versions compatibles sont les versions 2.7, 3.2, 3.3, 3.4 ou 3.5.

Installer Python (sous Windows)

  1. Téléchargez Python (EXE/MSI) pour Windows sur le site officiel de Python à l’adresse : https://www.python.org/downloads/
  2. Lancez l’installateur et suivez les instructions.
  3. À la fin de l’installation, lancez une fenêtre de commande Windows et lancez Python.
Vérification d'installation de Python

Vérification d’installation de Python

Si cela ne fonctionne pas :

python-non-installe-surwindows

“Python” n’est pas reconnu en tant que commande, programme ou fichier de commandes

Ajoutez l’emplacement où est installé l’exécutable Python à la variable d’environnement PATH (système ou utilisateur) :

L'ajout de Python à la variable d’environnement PATH sous Windows

L’ajout de Python à la variable d’environnement PATH sous Windows

Dans ce tuto nous allons utiliser Python 2.7. Il est possible d’utiliser tout autre version compatible avec Django (2.7++).

Installer Setuptools

Après l’installation de Python, il est nécessaire d’installer l’utilitaire Setuptools pour pouvoir installer les packages Python. Pour cela, télécharger la derniere version de Setuptools à l’adresse suivante http://pypi.python.org/pypi/setuptools puis suivez les instructions ci-dessous :

  1. Executer le script ez_setup.py. Ce dernier va télécharger le fichier de distribution approprié et l’installer pour vous.
  2. Ajouter le chemin du dossier scripts (dans mon cas : C:\Python27\Scripts) au PATH

Pour plus de details sur les differents types d’installation/desinstallation de Setuptools , consultez le lien suivant : http://pypi.python.org/pypi/setuptools.

Installer PIP

PIP est un gestionnaire de paquets utilisé pour installer et gérer des paquets écrits en Python. De nombreux paquets peuvent être trouvés sur le Python Package Index (PyPI).

Pour installer PIP, tapez la ligne de commande suivante dans la fenêtre de commande : easy_install pip. Cette commande ne fonctionne que si setuptools a été préalablement installé.

Installation du gestionnaire de packages PIP

Installation du gestionnaire de packages PIP

Python 3.4 et ses versions suivantes incluent PIP par défaut

installer Django

Une fois PIP installé, la procédure est extrêmement simple. Toujours dans la fenêtre de commande tapez : pip install django

Installation de Django

Installation de Django

Vérifiez que tout s’est bien passé en tapant dans la fenêtre de commande :

Version installée de Django

Version installée de Django

L’installation de Django est terminée.

Principes de base de Django

Les principaux modules de Django – modèles, vues et Les templates

Pour simplifier au maximum, les principaux modules de Django sont les suivants :

  • Les modèles,
  • Les vues,
  • Les templates.
Les principaux modules de Django

Les principaux modules de Django

Les modèles définissent les objets manipulés par l’application et possèdent une API permettant d’accéder et de manipuler la base de données en Python grâce à l’ORM de Django.

Le routage des URL connecte les URL externes à des points d’entrée dans le code : les vues.

Les vues organisent les traitements, manipulent les modèles et renvoient des données.

Les templates organisent la présentation des données renvoyées par les vues et respectent le principe S.O.C en séparant la présentation des traitements.

Ainsi, nous avons les modèles, les vues et les templates. En y ajoutant les formulaires, cela suffirait pour pouvoir commencer à travailler. Le reste sera une affaire d’optimisation, de curiosité et donc de temps et d’apprentissage.

Introduction au framework Django

Qu’est-ce que Django?

Django est un framework de développement web écrit en Python, il permet donc de créer des sites web à l’aide du langage Python. Django a pour but de rendre le développement web simple et rapide. Pour cette raison, le projet a pour slogan « The Web framework for perfectionists with deadlines » ce qui veut dire en Français « Le framework web pour les perfectionnistes avec des objectifs/contraintes (délais, budgets…) ».

Django est écrit en Python, il bénéficie donc de toute la souplesse et de la puissance de Python. Django bénéficie également de toute la richesse des librairies Python.

Comme il est toujours compliqué de partir de rien, Django peut être considéré comme une boîte à outils qui aide et oriente le développeur dans la construction de ses projets, il existe probablement un module répondant à votre besoin et où chaque module peut fonctionner de façon indépendante.

Logo officiel Django

Logo officiel Django

Historique

Pour la petite histoire Django a vu le jour en 2003 et a été publié sous licence BSD en juillet 2005.

Le framework a été nommé ainsi en souvenir de Django Reinhardt, musicien de jazz. Django a été originellement développé pour un journal local de la ville de Lawrence, dans le Kansas à partir de 2003, par Adrian Holovaty et Simon Willison. L’idée d’origine du framework était de permettre de développer des sites web complexes utilisant une base de données. En 2005, l’agence de presse décide de publier Django en « open source » (logiciel libre) sous licence BSD. C’est depuis cette ouverture que sa notoriété augmente. Il sera repris plus tard, en juin 2008 par la fondation Django Software qui maintient encore aujourd’hui la communauté et le développement du framework.

Au moment de l’écriture de cette Introduction à Django, la version stable est 1.9.

Principes

Django est un framework qui s’inspire du principe MVC (Model/View/Controller) ou MTV (la vue est gérée par un template) et est composé de trois parties distinctes :

  • Un langage de templates flexible qui permet de générer du HTML, XML ou n’importe quel autre format basé sur du texte (SVG, OpenDocument, PostScript, …).
  • Un contrôleur implémenté sous la forme d’un « remapping  » d’URL à partir d’expressions régulières Python.
  • Une API d’accès aux données est automatiquement générée par le framework compatible CRUD. Plus besoin d’écrire des requêtes SQL associées à des formulaires, les requêtes SQL sont générées automatiquement par l’ORM (Object Relational Mapping). Cette puissante fonctionnalité permet à Django de bénéficier d’une interface d’administration générée automatiquement à partir du modèle de données ainsi que d’un mécanisme de validation des données saisies par l’utilisateur.

Sont également inclus :

  • Un mécanisme de cache web pouvant utiliser plusieurs méthodes (MemCached ou cache en mémoire en Français, par fichiers, en base de données ou personnalisé).
  • le support de classes intermédiaires (middleware) qui peuvent être placées à n’importe quelle étape du traitement d’une requête pour intégrer des traitements particuliers comme les caches, le contrôle des accès (authentification, filtrage, sécurité…), ainsi que la traduction et l’internationalisation des formats (dates, nombres, pluriels…).
  • Un serveur de développement web léger est fourni avec Django, permettant de développer, débugger et tester ses applications immédiatement sans aucun déploiement.
  • Un support complet d’Unicode.

Les forces de Django

Les vues génériques : il s’agit de vues et/ou de classes permettant de traiter les cas les plus courants du développement web de manière très simple, tout en écrivant très peu de lignes de code. Elles permettent par exemple de lister des objets avec une gestion de la pagination, de lister des objets organisés par date avec des URL du type (année)/(mois)/(jour)/élément à afficher.

La sécurité : mécanisme anticlick-jacking, protection par CSRF token, contrôle total sur les requêtes, authentification, cryptage ; la boîte à outils est assez complète, les mécanismes les plus courants sont intégrés.

La documentation : Django possède une très bonne documentation anglaise. (dont un effort de traduction en français de l’API stabilisé) Cette documentation, au format ReStructuredText (ReST), est compatible avec le projet Sphinx.

Les exceptions : les exceptions et backtraces Python sont bien gérées dans Django et apparaissent dans les pages d’erreur 500, en mode débogage. On peut avoir une bonne idée des variables d’environnement et du code ayant provoqué l’exception. Des outils tiers peuvent être ajoutés comme la barre de débogage de Symfony (Django Debug Toolbar).

La communauté Django : Django dispose d’une large communauté très active. Depuis juin 2008, la fondation Django Software s’occupe du développement et de la promotion du framework. La fondation organise deux fois par an les « DjangoCon », qui sont des conférences et ateliers entre développeurs et utilisateurs de Django. Une se déroule en Europe et l’autre aux États-Unis.

Nous n’avons cité que quelques points forts du framework, il en existe plusieurs, mais c’est difficile de les lister tous ici.

Les faiblesses de Django

L’AJAX : Django ne permet pas l’intégration d’AJAX côté client. Ceci est un choix de l’équipe de développement qui préfère laisser à l’utilisateur le choix de la bibliothèque AJAX à combiner avec Django (MooTools, Prototype, MochiKit (en), jQuery, dojo, ext, etc.).

Migrations : Avant la version 1.724, il n’y avait pas d’outil intégré au framework pour gérer les migrations lors des modifications des modèles. Mais des applications Django permettaient de pallier ce manque, notamment South , et d’autre part, un outil de migration intégré au framework est inclus à partir de la version 1.7.