SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
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

Tendances

Formation python
Formation pythonFormation python
Formation pythonj_lipaz
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement webHouda TOUKABRI
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
Méthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XPMéthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XPYouness Boukouchi
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationMouna Torjmen
 
Django Introduction & Tutorial
Django Introduction & TutorialDjango Introduction & Tutorial
Django Introduction & Tutorial之宇 趙
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Faycel Chaoua
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logicielMohamed Diallo
 
Application web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemApplication web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemSarra ERRREGUI
 
Cours python
Cours pythonCours python
Cours pythonsalmazen
 
Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop amat samiâ boualil
 
Modélisation de données pour MongoDB
Modélisation de données pour MongoDBModélisation de données pour MongoDB
Modélisation de données pour MongoDBMongoDB
 

Tendances (20)

Formation python
Formation pythonFormation python
Formation python
 
Un introduction à Pig
Un introduction à PigUn introduction à Pig
Un introduction à Pig
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Méthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XPMéthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XP
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 Encapsulation
 
POO
POOPOO
POO
 
Django Introduction & Tutorial
Django Introduction & TutorialDjango Introduction & Tutorial
Django Introduction & Tutorial
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logiciel
 
Application web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemApplication web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment system
 
Cours python
Cours pythonCours python
Cours python
 
Angular
AngularAngular
Angular
 
Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop
 
Introduction à Odoo
Introduction à OdooIntroduction à Odoo
Introduction à Odoo
 
Modélisation de données pour MongoDB
Modélisation de données pour MongoDBModélisation de données pour MongoDB
Modélisation de données pour MongoDB
 

En vedette

Les maladies parodontales un facteur de risque additionnel pour les accouchem...
Les maladies parodontales un facteur de risque additionnel pour les accouchem...Les maladies parodontales un facteur de risque additionnel pour les accouchem...
Les maladies parodontales un facteur de risque additionnel pour les accouchem...Mohamed Salem Nasaoui
 
Cr formation mainssieux ok
Cr formation mainssieux ok Cr formation mainssieux ok
Cr formation mainssieux ok feugier
 
El sistema solar
El sistema solarEl sistema solar
El sistema solariecharri
 
Question 4 Evaluation
Question 4 Evaluation Question 4 Evaluation
Question 4 Evaluation Abdulhye96
 
Inventaire endate du 18 octobre 2015
Inventaire endate du 18 octobre 2015Inventaire endate du 18 octobre 2015
Inventaire endate du 18 octobre 2015Karine Paradis
 
Alessandro norwegian wildlife
Alessandro norwegian wildlifeAlessandro norwegian wildlife
Alessandro norwegian wildlifeCruiseGuideCourse
 
sayar_suleyman_linkedbook
sayar_suleyman_linkedbooksayar_suleyman_linkedbook
sayar_suleyman_linkedbookSuleyman Sayar
 
Inventaire en date du 20 octobre 2015
Inventaire en date du 20 octobre 2015Inventaire en date du 20 octobre 2015
Inventaire en date du 20 octobre 2015Karine Paradis
 
Liste alphabétique des aliments et leur IG
Liste alphabétique des aliments et leur IGListe alphabétique des aliments et leur IG
Liste alphabétique des aliments et leur IGCémoi Frankoise
 
Plaquette Licence AES
Plaquette Licence AESPlaquette Licence AES
Plaquette Licence AESJulie L
 
Cr formation hébert ok
Cr formation hébert ok Cr formation hébert ok
Cr formation hébert ok feugier
 
Dossier de production- groupe 93
Dossier de production- groupe 93Dossier de production- groupe 93
Dossier de production- groupe 93mehdiberra1
 
Ddoc t 2013_0048_deloffre
Ddoc t 2013_0048_deloffreDdoc t 2013_0048_deloffre
Ddoc t 2013_0048_deloffreOmarSahraoui014
 

En vedette (20)

Scrum.py, introduction
Scrum.py, introductionScrum.py, introduction
Scrum.py, introduction
 
Les maladies parodontales un facteur de risque additionnel pour les accouchem...
Les maladies parodontales un facteur de risque additionnel pour les accouchem...Les maladies parodontales un facteur de risque additionnel pour les accouchem...
Les maladies parodontales un facteur de risque additionnel pour les accouchem...
 
Cr formation mainssieux ok
Cr formation mainssieux ok Cr formation mainssieux ok
Cr formation mainssieux ok
 
El sistema solar
El sistema solarEl sistema solar
El sistema solar
 
Question 4 Evaluation
Question 4 Evaluation Question 4 Evaluation
Question 4 Evaluation
 
Inventaire endate du 18 octobre 2015
Inventaire endate du 18 octobre 2015Inventaire endate du 18 octobre 2015
Inventaire endate du 18 octobre 2015
 
Apero SEO
Apero SEOApero SEO
Apero SEO
 
Alessandro norwegian wildlife
Alessandro norwegian wildlifeAlessandro norwegian wildlife
Alessandro norwegian wildlife
 
sayar_suleyman_linkedbook
sayar_suleyman_linkedbooksayar_suleyman_linkedbook
sayar_suleyman_linkedbook
 
CDeco
CDecoCDeco
CDeco
 
Inventaire en date du 20 octobre 2015
Inventaire en date du 20 octobre 2015Inventaire en date du 20 octobre 2015
Inventaire en date du 20 octobre 2015
 
Liste alphabétique des aliments et leur IG
Liste alphabétique des aliments et leur IGListe alphabétique des aliments et leur IG
Liste alphabétique des aliments et leur IG
 
CompuTraining
CompuTrainingCompuTraining
CompuTraining
 
Plaquette Licence AES
Plaquette Licence AESPlaquette Licence AES
Plaquette Licence AES
 
Projet d'Art
Projet d'ArtProjet d'Art
Projet d'Art
 
Grafiques
Grafiques    Grafiques
Grafiques
 
Cr formation hébert ok
Cr formation hébert ok Cr formation hébert ok
Cr formation hébert ok
 
Dossier de production- groupe 93
Dossier de production- groupe 93Dossier de production- groupe 93
Dossier de production- groupe 93
 
Ddoc t 2013_0048_deloffre
Ddoc t 2013_0048_deloffreDdoc t 2013_0048_deloffre
Ddoc t 2013_0048_deloffre
 
RL retouch
RL retouchRL retouch
RL retouch
 

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

20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache MavenArnaud Héritier
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders BattleArnaud Héritier
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureNicolas Georgeault
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationStéphane Traumat
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache MavenArnaud Héritier
 
Bbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic searchBbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic searchIdriss Neumann
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBruno Bonnin
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv PsGregory Renard
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière Cellenza
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Gregory Renard
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Gregory Renard
 

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

20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle
 
Octo Maven.pdf
Octo Maven.pdfOcto Maven.pdf
Octo Maven.pdf
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec Azure
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
R Devtools
R DevtoolsR Devtools
R Devtools
 
Chapter1
Chapter1Chapter1
Chapter1
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
 
Catalogue PFE 2019
Catalogue PFE 2019Catalogue PFE 2019
Catalogue PFE 2019
 
Bbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic searchBbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic search
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache Zeppelin
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv Ps
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
 

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