SlideShare une entreprise Scribd logo
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Django
Martin Latrille
Orange Labs
IMT/OLPS
20/11/2014
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Table des matières
1 Introduction
2 Architecture MVT
3 Caractéristiques
4 Outils
5 Documentation
6 Conclusion
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Table des matières
1 Introduction
2 Architecture MVT
3 Caractéristiques
4 Outils
5 Documentation
6 Conclusion
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Django, c’est quoi ?
Django, c’est quoi ?
"Le framework Web des perfectionnistes sous pression"
Framework Web écrit en Python, équivalent de :
RubyOnRails pour Ruby
Struts/Spring pour Java
Framework Web standard du Python, malgré de nombreux
concurrents :
Flask
Pyramid
Web2py
...
Prône l’unicité du code
Développé à partir de 2003, rendu public sous licence BSD en
2005
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Pourquoi choisir Django
Pourquoi choisir Django
Vitesse de développement
Nombre de features
Grande communauté
Open-source
Compatible Python2 / Python3
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Qui se sert de Django
Qui se sert de Django
Disqus, Pinterest, Instagram, Mahalo, bitbucket, lanyrd,
support.mozilla.com, addons.mozilla.org, The Onion, EveryBlock,
GiantBomb, ComicVine, MichaelMoore.com, newyorktimes.com
(represent), washingtonpost.com, guardian.co.uk, lawrence.com...
Le site d’orange.ch est fait avec DjangoCMS.
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Table des matières
1 Introduction
2 Architecture MVT
3 Caractéristiques
4 Outils
5 Documentation
6 Conclusion
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Concept
Schéma MVC
Figure: Schéma de l’architecture MVC
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Concept
Schéma MVT
Figure: Schéma de l’architecture MVT
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Exemple
MVT (exemple de code)
Modèle :
c l a s s A r t i c l e ( models . Model ) :
"""
␣␣ D e f i n e ␣an␣ a r t i c l e
␣␣"""
name = models . C h a r F i e l d ( max_length =128)
c o n t e n t = models . T e x t F i e l d ( )
Vue :
c l a s s A r t i c l e V i e w ( django . v i e w s . g e n e r i c . View ) :
"""
␣␣ D i s p l a y ␣an␣ a r t i c l e
␣␣"""
d e f get ( s e l f , r e q u e s t , pk ) :
a r t i c l e = A r t i c l e . o b j e c t s . get ( i d=pk )
r e t u r n r e n d e r ( ’ a r t i c l e . html ’ , l o c a l s ( ) )
Template :
<html>
<body>
<h1>{{ a r t i c l e . name }}</h1>
<p>{{ a r t i c l e . c o n t e n t }}</p>
</ body>
</ html>
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Table des matières
1 Introduction
2 Architecture MVT
3 Caractéristiques
4 Outils
5 Documentation
6 Conclusion
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
ORM
ORM
Object-Relational Manager : intermédiaire entre les objets et la
base de données.
Crée une table pour chaque modèle
Crée une ligne pour chaque instance de modèle
Met à jour la base de données en fonction des instances
Exemple
Article(name="article1", content="Salut !").save()
print Article.objects.get(name="article1").content
Salut !
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
URL dispatcher
URL dispatcher
L’URL dispatcher est l’outil qui associe une URL à une vue.
Pas d’URLs de base ; vous les définissez entièrement
Pas de limitations dans la personnalisation d’URLs
URLs écrite dans le fichier urls.py de chaque application
Exemple d’URL patterns :
u r l p a t t e r n s = p a t t e r n s ( ’ ’ ,
u r l ( r ’^$ ’ , v i e w s . HomeView . as_view ( ) ) ,
u r l ( r ’^b l o g /$ ’ , v i e w s . BlogView . as_view ( ) ) ,
u r l ( r ’^b l o g /(?P<pk >[0−9]+)/$ ’ , v i e w s . A r t i c l e V i e w . as_view ( ) ) ,
)
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Table des matières
1 Introduction
2 Architecture MVT
3 Caractéristiques
4 Outils
5 Documentation
6 Conclusion
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Outils intégrés
Utilitaire django-admin / manage.py
Regroupe tous les outils intégrés de Django
Permet d’effectuer des opérations sur le projet, comme :
créer un projet
créer une nouvelle application dans le projet
lancer le serveur de développement
lancer la suite de test
initialiser la base de données
créer et effectuer les migrations nécessaires pour la base de
données
...
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Outils intégrés
Serveur de développement
Inclus dans Django
Ne nécessite pas de configuration
Se lance en une commande : ./manage.py runserver
Rend l’application accessible en local à l’adresse
"http ://localhost :8000/"
Ecrit les logs sur la sortie standard
Uniquement pour le développement, ne pas utiliser en
production
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Outils intégrés
Suite de tests
Inclus dans Django
Ne nécessite pas de configuration
Se lance en une commande : ./manage.py test
Exécute les tests unitaires présents dans les fichiers tests.py de
chaque application
Permet l’intégration continue
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Outils intégrés
Interface d’administration
Auto-générée par Django
Nécessite l’enregistrement des modèles de chaque application
dans le fichier admin.py de celle-ci
admin . s i t e . r e g i s t e r ( Category )
admin . s i t e . r e g i s t e r ( A r t i c l e )
Permet la gestion de la base de données via une interface
graphique (dans le style de PhpMyAdmin)
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Outils externes
pip
pip est un outil pour installer et gérer les paquets Python.
Gestionnaire de paquets (comme yum, apt-get...)
Dédié à la gestion des paquets Python
Permet de choisir la version du paquet
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Outils externes
virtualenv
virtualenv est un outil pour créer des environnements Python
isolés.
Permet la création d’environnements virtuels
Permet, avec pip, d’installer des versions spécifiques de
paquets spécifiques pour un projet spécifique, dans
l’environnement du projet
Permet d’avoir plusieurs projets utilisant des versions
différentes de mêmes paquets, sans conflits
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Table des matières
1 Introduction
2 Architecture MVT
3 Caractéristiques
4 Outils
5 Documentation
6 Conclusion
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Sphinx
Sphinx est un outil permettant de générer de la documentation de
code Python à partir de commentaires formatés spécialement, les
docstring.
d e f f u n c t i o n ( x ) :
"""
␣␣ This ␣ i s ␣a␣ d o c s t r i n g
␣␣"""
r e t u r n x ∗ 2
On peut mettre des docstring dans les classes et dans les fonctions.
Elles doivent indiquer le fonctionnement de la classe/fonction
concernée.
Grâce à ces doctrings, et un petit peu de configuration, Sphinx
génère automatiquement la documentation du code, au format
LATEX, HTML, ePub, Texinfo, man pages (pages de manuel Unix)
ou texte normal.
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Table des matières
1 Introduction
2 Architecture MVT
3 Caractéristiques
4 Outils
5 Documentation
6 Conclusion
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion
Conclusion
Django est fait pour développer rapidement des applications
Web de qualité.
Il permet de factoriser le code, et grâce aux outils mis à
disposition, de se concentrer sur le développement.
Annexe
Sources
Sources I
http ://www.djangoproject.com/
http ://fr.openclassrooms.com/informatique/cours/developpez-
votre-site-web-avec-le-framework-django

Contenu connexe

PPTX
Servlets et JSP
PDF
python-Cours Officiel POO Python-m103.pdf
PPTX
DART.pptx
PPTX
Modele mvc
PDF
Applications Android - cours 12 : Persistance de données SQLite
PDF
Services web rest_support_cours_nfaoui_el_habib
PDF
Applications Android - cours 6 : Structure d’un projet Android
PPTX
Architectures 3-tiers (Web)
Servlets et JSP
python-Cours Officiel POO Python-m103.pdf
DART.pptx
Modele mvc
Applications Android - cours 12 : Persistance de données SQLite
Services web rest_support_cours_nfaoui_el_habib
Applications Android - cours 6 : Structure d’un projet Android
Architectures 3-tiers (Web)

Tendances (20)

PDF
Support cours angular
PDF
Introduction à React
PPTX
Introduction à spring boot
PDF
Tp1 - WS avec JAXWS
PDF
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
PDF
Cours JavaScript
PDF
Introduction to django framework
PDF
Cours php -partie 1.pdf
PPTX
Introduction à l’orienté objet en Python
PDF
Support NodeJS avec TypeScript Express MongoDB
PDF
Introduction au développement Web
PDF
Support JEE Servlet Jsp MVC M.Youssfi
PDF
Introduction à Django
PPSX
Cours Génie Logiciel - Cours 2 - Cycles de vie
PPTX
Introduction à JavaScript
PDF
Tp2 - WS avec JAXRS
PDF
Atelier Python 2eme partie par Achraf Kacimi El Hassani
PPTX
Introduction à React
PDF
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
PPTX
Fondamentaux d’une API REST
Support cours angular
Introduction à React
Introduction à spring boot
Tp1 - WS avec JAXWS
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Cours JavaScript
Introduction to django framework
Cours php -partie 1.pdf
Introduction à l’orienté objet en Python
Support NodeJS avec TypeScript Express MongoDB
Introduction au développement Web
Support JEE Servlet Jsp MVC M.Youssfi
Introduction à Django
Cours Génie Logiciel - Cours 2 - Cycles de vie
Introduction à JavaScript
Tp2 - WS avec JAXRS
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Introduction à React
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Fondamentaux d’une API REST
Publicité

En vedette (20)

ZIP
Scrum.py, introduction
DOCX
Les maladies parodontales un facteur de risque additionnel pour les accouchem...
PPTX
Cr formation mainssieux ok
PPTX
El sistema solar
PPTX
Question 4 Evaluation
PDF
Inventaire endate du 18 octobre 2015
PDF
Apero SEO
PPTX
Alessandro norwegian wildlife
PDF
sayar_suleyman_linkedbook
PDF
PDF
Inventaire en date du 20 octobre 2015
PDF
Liste alphabétique des aliments et leur IG
PPTX
CompuTraining
PDF
Plaquette Licence AES
PPTX
Projet d'Art
ODP
Grafiques
PPTX
Cr formation hébert ok
PDF
Dossier de production- groupe 93
PDF
Ddoc t 2013_0048_deloffre
PDF
RL retouch
Scrum.py, introduction
Les maladies parodontales un facteur de risque additionnel pour les accouchem...
Cr formation mainssieux ok
El sistema solar
Question 4 Evaluation
Inventaire endate du 18 octobre 2015
Apero SEO
Alessandro norwegian wildlife
sayar_suleyman_linkedbook
Inventaire en date du 20 octobre 2015
Liste alphabétique des aliments et leur IG
CompuTraining
Plaquette Licence AES
Projet d'Art
Grafiques
Cr formation hébert ok
Dossier de production- groupe 93
Ddoc t 2013_0048_deloffre
RL retouch
Publicité

Similaire à Présentation de Django @ Orange Labs (FR) (7)

TXT
Chapter1
PDF
Presentation du Livre Django Avancé
PDF
Django by mrjmad
PDF
Conférence #nwxtech5 : Django, du framework pour les perfectionnistes au pony...
PDF
Lbv Dev Meetup #3
PDF
Des poneys à Liberation.fr
PDF
Django pour les développeurs Symfony (et réciproquement)
Chapter1
Presentation du Livre Django Avancé
Django by mrjmad
Conférence #nwxtech5 : Django, du framework pour les perfectionnistes au pony...
Lbv Dev Meetup #3
Des poneys à Liberation.fr
Django pour les développeurs Symfony (et réciproquement)

Présentation de Django @ Orange Labs (FR)

  • 1. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Django Martin Latrille Orange Labs IMT/OLPS 20/11/2014
  • 2. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Table des matières 1 Introduction 2 Architecture MVT 3 Caractéristiques 4 Outils 5 Documentation 6 Conclusion
  • 3. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Table des matières 1 Introduction 2 Architecture MVT 3 Caractéristiques 4 Outils 5 Documentation 6 Conclusion
  • 4. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Django, c’est quoi ? Django, c’est quoi ? "Le framework Web des perfectionnistes sous pression" Framework Web écrit en Python, équivalent de : RubyOnRails pour Ruby Struts/Spring pour Java Framework Web standard du Python, malgré de nombreux concurrents : Flask Pyramid Web2py ... Prône l’unicité du code Développé à partir de 2003, rendu public sous licence BSD en 2005
  • 5. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Pourquoi choisir Django Pourquoi choisir Django Vitesse de développement Nombre de features Grande communauté Open-source Compatible Python2 / Python3
  • 6. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Qui se sert de Django Qui se sert de Django Disqus, Pinterest, Instagram, Mahalo, bitbucket, lanyrd, support.mozilla.com, addons.mozilla.org, The Onion, EveryBlock, GiantBomb, ComicVine, MichaelMoore.com, newyorktimes.com (represent), washingtonpost.com, guardian.co.uk, lawrence.com... Le site d’orange.ch est fait avec DjangoCMS.
  • 7. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Table des matières 1 Introduction 2 Architecture MVT 3 Caractéristiques 4 Outils 5 Documentation 6 Conclusion
  • 8. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Concept Schéma MVC Figure: Schéma de l’architecture MVC
  • 9. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Concept Schéma MVT Figure: Schéma de l’architecture MVT
  • 10. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Exemple MVT (exemple de code) Modèle : c l a s s A r t i c l e ( models . Model ) : """ ␣␣ D e f i n e ␣an␣ a r t i c l e ␣␣""" name = models . C h a r F i e l d ( max_length =128) c o n t e n t = models . T e x t F i e l d ( ) Vue : c l a s s A r t i c l e V i e w ( django . v i e w s . g e n e r i c . View ) : """ ␣␣ D i s p l a y ␣an␣ a r t i c l e ␣␣""" d e f get ( s e l f , r e q u e s t , pk ) : a r t i c l e = A r t i c l e . o b j e c t s . get ( i d=pk ) r e t u r n r e n d e r ( ’ a r t i c l e . html ’ , l o c a l s ( ) ) Template : <html> <body> <h1>{{ a r t i c l e . name }}</h1> <p>{{ a r t i c l e . c o n t e n t }}</p> </ body> </ html>
  • 11. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Table des matières 1 Introduction 2 Architecture MVT 3 Caractéristiques 4 Outils 5 Documentation 6 Conclusion
  • 12. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion ORM ORM Object-Relational Manager : intermédiaire entre les objets et la base de données. Crée une table pour chaque modèle Crée une ligne pour chaque instance de modèle Met à jour la base de données en fonction des instances Exemple Article(name="article1", content="Salut !").save() print Article.objects.get(name="article1").content Salut !
  • 13. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion URL dispatcher URL dispatcher L’URL dispatcher est l’outil qui associe une URL à une vue. Pas d’URLs de base ; vous les définissez entièrement Pas de limitations dans la personnalisation d’URLs URLs écrite dans le fichier urls.py de chaque application Exemple d’URL patterns : u r l p a t t e r n s = p a t t e r n s ( ’ ’ , u r l ( r ’^$ ’ , v i e w s . HomeView . as_view ( ) ) , u r l ( r ’^b l o g /$ ’ , v i e w s . BlogView . as_view ( ) ) , u r l ( r ’^b l o g /(?P<pk >[0−9]+)/$ ’ , v i e w s . A r t i c l e V i e w . as_view ( ) ) , )
  • 14. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Table des matières 1 Introduction 2 Architecture MVT 3 Caractéristiques 4 Outils 5 Documentation 6 Conclusion
  • 15. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Outils intégrés Utilitaire django-admin / manage.py Regroupe tous les outils intégrés de Django Permet d’effectuer des opérations sur le projet, comme : créer un projet créer une nouvelle application dans le projet lancer le serveur de développement lancer la suite de test initialiser la base de données créer et effectuer les migrations nécessaires pour la base de données ...
  • 16. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Outils intégrés Serveur de développement Inclus dans Django Ne nécessite pas de configuration Se lance en une commande : ./manage.py runserver Rend l’application accessible en local à l’adresse "http ://localhost :8000/" Ecrit les logs sur la sortie standard Uniquement pour le développement, ne pas utiliser en production
  • 17. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Outils intégrés Suite de tests Inclus dans Django Ne nécessite pas de configuration Se lance en une commande : ./manage.py test Exécute les tests unitaires présents dans les fichiers tests.py de chaque application Permet l’intégration continue
  • 18. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Outils intégrés Interface d’administration Auto-générée par Django Nécessite l’enregistrement des modèles de chaque application dans le fichier admin.py de celle-ci admin . s i t e . r e g i s t e r ( Category ) admin . s i t e . r e g i s t e r ( A r t i c l e ) Permet la gestion de la base de données via une interface graphique (dans le style de PhpMyAdmin)
  • 19. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Outils externes pip pip est un outil pour installer et gérer les paquets Python. Gestionnaire de paquets (comme yum, apt-get...) Dédié à la gestion des paquets Python Permet de choisir la version du paquet
  • 20. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Outils externes virtualenv virtualenv est un outil pour créer des environnements Python isolés. Permet la création d’environnements virtuels Permet, avec pip, d’installer des versions spécifiques de paquets spécifiques pour un projet spécifique, dans l’environnement du projet Permet d’avoir plusieurs projets utilisant des versions différentes de mêmes paquets, sans conflits
  • 21. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Table des matières 1 Introduction 2 Architecture MVT 3 Caractéristiques 4 Outils 5 Documentation 6 Conclusion
  • 22. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Sphinx Sphinx est un outil permettant de générer de la documentation de code Python à partir de commentaires formatés spécialement, les docstring. d e f f u n c t i o n ( x ) : """ ␣␣ This ␣ i s ␣a␣ d o c s t r i n g ␣␣""" r e t u r n x ∗ 2 On peut mettre des docstring dans les classes et dans les fonctions. Elles doivent indiquer le fonctionnement de la classe/fonction concernée. Grâce à ces doctrings, et un petit peu de configuration, Sphinx génère automatiquement la documentation du code, au format LATEX, HTML, ePub, Texinfo, man pages (pages de manuel Unix) ou texte normal.
  • 23. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Table des matières 1 Introduction 2 Architecture MVT 3 Caractéristiques 4 Outils 5 Documentation 6 Conclusion
  • 24. Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Conclusion Django est fait pour développer rapidement des applications Web de qualité. Il permet de factoriser le code, et grâce aux outils mis à disposition, de se concentrer sur le développement.
  • 25. Annexe Sources Sources I http ://www.djangoproject.com/ http ://fr.openclassrooms.com/informatique/cours/developpez- votre-site-web-avec-le-framework-django