La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

S OUTENANCE S TAGE L3 INFO G UILLAUME A NSEL Création dun site Internet dynamique avec le framework Django.

Présentations similaires


Présentation au sujet: "S OUTENANCE S TAGE L3 INFO G UILLAUME A NSEL Création dun site Internet dynamique avec le framework Django."— Transcription de la présentation:

1 S OUTENANCE S TAGE L3 INFO G UILLAUME A NSEL Création dun site Internet dynamique avec le framework Django

2 Plan Guillaume Ansel 1. Introduction 2. Présentation du sujet choisi 3. Conception Générale 4. Conception Détaillée 5. Synthèse 6. Conclusion 2

3 1. I NTRODUCTION Guillaume Ansel3

4 1.Introduction Guillaume Ansel Stage de Licence Informatique Durée : 10 semaines Sujet : « Création dun site Internet dynamique pour la société Studio Odyssée » Entreprise daccueil : Studio Odyssée Encadrement : Virginie MARION-POTY 4

5 2. P RÉSENTATION DU SUJET Guillaume Ansel5

6 2. Présentation du sujet Guillaume Ansel « Création dun site Internet pour la société Studio Odyssée » 6

7 2. Présentation du sujet Guillaume Ansel7 Présentation des activités de la société Logiciel Internet Infographie Marketing & Communication Site dynamique Contenu dynamique Espace client

8 3. C ONCEPTION G ÉNÉRALE Guillaume Ansel8

9 3. Conception Générale 3.1 Les outils Guillaume Ansel9 Développement du site avec le langage Python Utilisation du framework web Django (pre-1.0) Gestion des sources avec Subversion Codage des pages en XHTML 1.0 Mise en page avec les feuilles de style CSS (Cascading Style Sheets)

10 3. Conception Générale 3.2 Le framework Guillaume Ansel10 Le développement du site sappuie sur lutilisation du framework django. Nombreux avantages : Inclus un ORM (Object-Relational Mapping) Interface dadministration générée automatiquement Gestion des URL propre Système de template puissant (Système de mise en cache) (Internationalisation)

11 3. Conception Générale 3.3 Le principe Guillaume Ansel11 Conception proche du système MVC (Modèle Vue Contrôleur)

12 3. Conception Générale 3.3 Le principe Guillaume Ansel12 Modèle Couche de données Encapsulées dans des objets grâce à lORM Abstraction par rapport au support de stockage Gestion des liaisons de type : Un à Un Un à Plusieurs Plusieurs à Plusieurs Gestion des contraintes dintégrités Django créé la BDD à partir des modèles

13 3. Conception Générale 3.3 Le principe Guillaume Ansel13 Vue Correspond à une page Web offrant un service spécifique Définit quelle données doit être affichées et renvoie une réponse HTTP. Différente réponse HTTP selon les cas : 200: requête valide contenant la page demandée 403: requête non autorisée 404: la page demandée nexiste pas 500: erreur dans lexécution du code de la vue Dautres type de réponses si besoin

14 3. Conception Générale 3.3 Le principe Guillaume Ansel14 Contrôleur Napparait pas explicitement du point de vue du développeur Peut-être considéré comme étant le framework lui-même Redirige les URL vers la vue correspondante Django utilise une interprétation différente du patron de conception original MVC, plus proche des besoins des auteurs du framework.

15 3. Conception Générale 3.3 Le principe Guillaume Ansel15 Template Présentation des données Langage de template puissant Structure conditionnelle Boucle Héritage Filtres Sortie en format texte HTML CSV Texte

16 4. C ONCEPTION D ÉTAILLÉE Guillaume Ansel16

17 4. Conception Détaillée 4.1 Les applications Guillaume Ansel17 Projet vs Application Un projet regroupe un ensemble de fonctionnalités Les fonctionnalités peuvent être regroupées dans des applications Une application peut-être partagée par plusieurs projets différents Nom du projet: studioodyssee

18 4. Conception Détaillée 4.1 Les applications Guillaume Ansel18 Liste des applications Pages statiques Contact Syndication Index Derniers billets Archives Actualite Liste des projets Détail dun projet Projet Espace personnel Membres Regroupe les fonctions utilitaires Contrib

19 4. Conception Détaillée 4.2 Diagramme de classe UML Guillaume Ansel19

20 4. Conception Détaillée 4.3 Fonctionnement nominal Guillaume Ansel20 Le visiteur envoie une requête Lien FastCGI entre le serveur Web et processus django Le framework traite la requête (session, identification, …) Redirection vers la vue correspondante La vue réalise les opérations demandées Charge les données des modèles Traite les formulaires si besoin Renvoie une réponse HTTP Réponse HTTP (200, 403, 404, 500, …) contenant la page demandée par le visiteur

21 4. Conception Détaillée 4.4 Exemple Guillaume Ansel21 class Billet(models.Model): titre = models.CharField(uTitre, max_length=128) contenu = models.TextField(uContenu) contenu_html = models.TextField(editable=False) auteur = models.ForeignKey(User) publication_date = models.DateField(uDate de publication, auto_now_add=True) def save(self): self.contenu_html = textile(self.contenu) super(Billet, self).save() Modèle: Billet

22 4. Conception Détaillée 4.4 Exemple Guillaume Ansel22 def liste_billet(request): try: billets = Billet.objects.all().order_by(-publication_date) except: raise Http404 return render_to_response(liste_billet.html, {billets:billets,}, \ context_instance = RequestContext(request)) Vue: liste_billet

23 4. Conception Détaillée 4.4 Exemple Guillaume Ansel23 Studio Odyssée - Un Projet {% for billet in billets %} {{ billet.titre }} {{ billet.auteur }} {{ billet.contenu_html|safe }} {% endfor %} Template: liste_billet.html

24 4. Conception Détaillée 4.4 Exemple Guillaume Ansel24 Studio Odyssée - Un Projet Billet 1 Guillaume contenu premier billet. Billet 2 Guillaume contenu deuxième billet. Résultat:

25 4. Conception Détaillée 4.5 Déploiement Guillaume Ansel25 En cours de développement Serveur web Python fournit par le framework Pas besoin de serveur Web dédié (Apache, LighTPD) Configuration automatique (daprès le fichier settings.py) Interface sur :8000 par défaut Mais pas utilisable en production

26 4. Conception Détaillée 4.5 Déploiement Guillaume Ansel26 En production Méthode recommandée : Apache + mod_python Django est compatible avec les protocoles WSGI (CGI, FastCGI, SCGI) Hébergement djangohosting.ch Mise en place du site sur un serveur Web LighTPD Interface FastCGI entre LighTPD et le processus django

27 4. Conception Détaillée 4.5 Déploiement Guillaume Ansel27 En production LighTPD Processus django FastCGI socket Requête HTTP Réponse HTTP

28 5. Synthèse Guillaume Ansel28

29 5. Synthèse Guillaume Ansel29 Préparation Installation des composants Développement Découpage en applications Choix des URL Création des modèles de données Ecriture des vues Rédaction des templates associées Déploiement Apache + mod_python LighTPD + FastCGI

30 6. Conclusion Guillaume Ansel30

31 6. Conclusion Guillaume Ansel31 Projet intéressant car sinscrivant dans le cadre dune création dentreprise Cadre de travail intéressant, participation active dans les choix techniques Apprentissage dun nouveau langage de programmation (Python) Nouvelle technique de développement basé sur lutilisation du framework django (DRY « Dont Repeat Yourself »)

32 Questions ? Guillaume Ansel32


Télécharger ppt "S OUTENANCE S TAGE L3 INFO G UILLAUME A NSEL Création dun site Internet dynamique avec le framework Django."

Présentations similaires


Annonces Google