25
Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion Django Martin Latrille Orange Labs IMT/OLPS 20/11/2014

Présentation de Django @ Orange Labs (FR)

Embed Size (px)

Citation preview

Page 1: Présentation de Django @ Orange Labs (FR)

Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion

Django

Martin Latrille

Orange LabsIMT/OLPS

20/11/2014

Page 2: Présentation de Django @ Orange Labs (FR)

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

Page 3: Présentation de Django @ Orange Labs (FR)

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

Page 4: Présentation de Django @ Orange Labs (FR)

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 RubyStruts/Spring pour Java

Framework Web standard du Python, malgré de nombreuxconcurrents :

FlaskPyramidWeb2py...

Prône l’unicité du codeDéveloppé à partir de 2003, rendu public sous licence BSD en2005

Page 5: Présentation de Django @ Orange Labs (FR)

Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion

Pourquoi choisir Django

Pourquoi choisir Django

Vitesse de développementNombre de featuresGrande communautéOpen-sourceCompatible Python2 / Python3

Page 6: Présentation de Django @ Orange Labs (FR)

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.

Page 7: Présentation de Django @ Orange Labs (FR)

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

Page 8: Présentation de Django @ Orange Labs (FR)

Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion

Concept

Schéma MVC

Figure: Schéma de l’architecture MVC

Page 9: Présentation de Django @ Orange Labs (FR)

Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion

Concept

Schéma MVT

Figure: Schéma de l’architecture MVT

Page 10: Présentation de Django @ Orange Labs (FR)

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 ) :

"""␣␣De f i n e ␣an␣ a r t i c l e␣␣"""

name = models . Cha rF i e l d ( max_length=128)con t en t = models . Te x tF i e l d ( )

Vue :c l a s s A r t i c l eV i ew ( d jango . v i ews . g e n e r i c . View ) :

"""␣␣ D i s p l a y ␣an␣ a r t i c l e␣␣"""

de f get ( s e l f , r eque s t , pk ) :a r t i c l e = A r t i c l e . o b j e c t s . ge t ( i d=pk )r e t u r n r e nd 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 . con t en t }}</p>

</body></ html>

Page 11: Présentation de Django @ Orange Labs (FR)

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

Page 12: Présentation de Django @ Orange Labs (FR)

Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion

ORM

ORM

Object-Relational Manager : intermédiaire entre les objets et labase de données.

Crée une table pour chaque modèleCrée une ligne pour chaque instance de modèleMet à jour la base de données en fonction des instances

Exemple

〉〉〉 Article(name="article1", content="Salut !").save()〉〉〉 print Article.objects.get(name="article1").contentSalut !

Page 13: Présentation de Django @ Orange Labs (FR)

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èrementPas de limitations dans la personnalisation d’URLsURLs écrite dans le fichier urls.py de chaque application

Exemple d’URL patterns :u r l p a t t e r n s = pa t t e r n s ( ’ ’ ,

u r l ( r ’^$ ’ , v i ews . HomeView . as_view ( ) ) ,u r l ( r ’^b l og /$ ’ , v i ews . BlogView . as_view ( ) ) ,u r l ( r ’^b l og /(?P<pk>[0−9]+)/$ ’ , v i ews . A r t i c l eV i ew . as_view ( ) ) ,

)

Page 14: Présentation de Django @ Orange Labs (FR)

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

Page 15: Présentation de Django @ Orange Labs (FR)

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 DjangoPermet d’effectuer des opérations sur le projet, comme :

créer un projetcréer une nouvelle application dans le projetlancer le serveur de développementlancer la suite de testinitialiser la base de donnéescréer et effectuer les migrations nécessaires pour la base dedonnées...

Page 16: Présentation de Django @ Orange Labs (FR)

Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion

Outils intégrés

Serveur de développement

Inclus dans DjangoNe nécessite pas de configurationSe lance en une commande : ./manage.py runserverRend l’application accessible en local à l’adresse"http ://localhost :8000/"Ecrit les logs sur la sortie standardUniquement pour le développement, ne pas utiliser enproduction

Page 17: Présentation de Django @ Orange Labs (FR)

Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion

Outils intégrés

Suite de tests

Inclus dans DjangoNe nécessite pas de configurationSe lance en une commande : ./manage.py testExécute les tests unitaires présents dans les fichiers tests.py dechaque applicationPermet l’intégration continue

Page 18: Présentation de Django @ Orange Labs (FR)

Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion

Outils intégrés

Interface d’administration

Auto-générée par DjangoNécessite l’enregistrement des modèles de chaque applicationdans le fichier admin.py de celle-ciadmin . 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 interfacegraphique (dans le style de PhpMyAdmin)

Page 19: Présentation de Django @ Orange Labs (FR)

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 PythonPermet de choisir la version du paquet

Page 20: Présentation de Django @ Orange Labs (FR)

Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion

Outils externes

virtualenv

virtualenv est un outil pour créer des environnements Pythonisolés.

Permet la création d’environnements virtuelsPermet, avec pip, d’installer des versions spécifiques depaquets spécifiques pour un projet spécifique, dansl’environnement du projetPermet d’avoir plusieurs projets utilisant des versionsdifférentes de mêmes paquets, sans conflits

Page 21: Présentation de Django @ Orange Labs (FR)

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

Page 22: Présentation de Django @ Orange Labs (FR)

Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion

Sphinx

Sphinx est un outil permettant de générer de la documentation decode Python à partir de commentaires formatés spécialement, lesdocstring.de 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/fonctionconcernée.Grâce à ces doctrings, et un petit peu de configuration, Sphinxgénère automatiquement la documentation du code, au formatLATEX, HTML, ePub, Texinfo, man pages (pages de manuel Unix)ou texte normal.

Page 23: Présentation de Django @ Orange Labs (FR)

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

Page 24: Présentation de Django @ Orange Labs (FR)

Introduction Architecture MVT Caractéristiques Outils Documentation Conclusion

Conclusion

Django est fait pour développer rapidement des applicationsWeb de qualité.Il permet de factoriser le code, et grâce aux outils mis àdisposition, de se concentrer sur le développement.

Page 25: Présentation de Django @ Orange Labs (FR)

Annexe

Sources

Sources I

http ://www.djangoproject.com/

http ://fr.openclassrooms.com/informatique/cours/developpez-votre-site-web-avec-le-framework-django