Soutenance Stage L3
This presentation is the property of its rightful owner.
Sponsored Links
1 / 32

Soutenance Stage L3 INFO Guillaume Ansel PowerPoint PPT Presentation


  • 63 Views
  • Uploaded on
  • Presentation posted in: General

Soutenance Stage L3 INFO Guillaume Ansel. Création d’un site Internet dynamique avec le framework Django. Plan. Introduction Présentation du sujet choisi Conception Générale Conception Détaillée Synthèse Conclusion. 1. Introduction. 1.Introduction. Stage de Licence Informatique

Download Presentation

Soutenance Stage L3 INFO Guillaume Ansel

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Soutenance stage l3 info guillaume ansel

Soutenance Stage L3 INFO

Guillaume Ansel

Création d’un site Internet dynamique avec le framework Django


Soutenance stage l3 info guillaume ansel

Plan

  • Introduction

  • Présentation du sujet choisi

  • Conception Générale

  • Conception Détaillée

  • Synthèse

  • Conclusion

Guillaume Ansel


1 introduction

1. Introduction

Guillaume Ansel


1 introduction1

1.Introduction

  • Stage de Licence Informatique

  • Durée : 10 semaines

  • Sujet : « Création d’un site Internet dynamique pour la société Studio Odyssée »

  • Entreprise d’accueil : Studio Odyssée

  • Encadrement : Virginie MARION-POTY

Guillaume Ansel


2 pr sentation du sujet

2. Présentation du sujet

Guillaume Ansel


2 pr sentation du sujet1

2. Présentation du sujet

  • « Création d’un site Internet pour la société Studio Odyssée »

Guillaume Ansel


2 pr sentation du sujet2

2. Présentation du sujet

  • Présentation des activités de la société

    • Logiciel

    • Internet

    • Infographie

    • Marketing & Communication

  • Site dynamique

    • Contenu dynamique

    • Espace client

Guillaume Ansel


3 conception g n rale

3. Conception Générale

Guillaume Ansel


3 conception g n rale 3 1 les outils

3. Conception Générale3.1 Les outils

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

Guillaume Ansel


3 conception g n rale 3 2 le framework

3. Conception Générale3.2 Le framework

  • Le développement du site s’appuie sur l’utilisation du framework django.

  • Nombreux avantages :

    • Inclus un ORM (Object-RelationalMapping)

    • Interface d’administration générée automatiquement

    • Gestion des URL propre

    • Système de template puissant

    • (Système de mise en cache)

    • (Internationalisation)

Guillaume Ansel


3 conception g n rale 3 3 le principe

3. Conception Générale3.3 Le principe

  • Conception proche du système MVC (Modèle Vue Contrôleur)

Guillaume Ansel


3 conception g n rale 3 3 le principe1

3. Conception Générale3.3 Le principe

Modèle

  • Couche de données

  • Encapsulées dans des objets grâce à l’ORM

  • Abstraction par rapport au support de stockage

  • Gestion des liaisons de type :

    • Un à Un

    • Un à Plusieurs

    • Plusieurs à Plusieurs

  • Gestion des contraintes d’intégrités

  • Django créé la BDD à partir des modèles

Guillaume Ansel


3 conception g n rale 3 3 le principe2

3. Conception Générale3.3 Le principe

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 n’existe pas

    • 500: erreur dans l’exécution du code de la vue

    • D’autres type de réponses si besoin

Guillaume Ansel


3 conception g n rale 3 3 le principe3

3. Conception Générale3.3 Le principe

Contrôleur

  • N’apparait 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.

Guillaume Ansel


3 conception g n rale 3 3 le principe4

3. Conception Générale3.3 Le principe

Template

  • Présentation des données

  • Langage de template puissant

    • Structure conditionnelle

    • Boucle

    • Héritage

    • Filtres

  • Sortie en format texte

    • HTML

    • CSV

    • Texte

Guillaume Ansel


4 conception d taill e

4. Conception Détaillée

Guillaume Ansel


4 conception d taill e 4 1 les applications

4. Conception Détaillée4.1 Les applications

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

Guillaume Ansel


4 conception d taill e 4 1 les applications1

4. Conception Détaillée4.1 Les applications

Guillaume Ansel


4 conception d taill e 4 2 diagramme de classe uml

4. Conception Détaillée4.2 Diagramme de classe UML

Guillaume Ansel


4 conception d taill e 4 3 fonctionnement nominal

4. Conception Détaillée4.3 Fonctionnement nominal

Guillaume Ansel


4 conception d taill e 4 4 exemple

4. Conception Détaillée4.4 Exemple

Modèle: Billet

class Billet(models.Model):

titre = models.CharField(u’Titre’, max_length=128)

contenu = models.TextField(u’Contenu’)

contenu_html = models.TextField(editable=False)

auteur = models.ForeignKey(User)

publication_date = models.DateField(u’Date de publication’, auto_now_add=True)

defsave(self):

self.contenu_html = textile(self.contenu)

super(Billet, self).save()

Guillaume Ansel


4 conception d taill e 4 4 exemple1

4. Conception Détaillée4.4 Exemple

Vue:liste_billet

defliste_billet(request):

try:

billets = Billet.objects.all().order_by(‘-publication_date’)

except:

raiseHttp404

return render_to_response(‘liste_billet.html’, {‘billets’:billets,}, \context_instance = RequestContext(request))

Guillaume Ansel


4 conception d taill e 4 4 exemple2

4. Conception Détaillée4.4 Exemple

Template: liste_billet.html

<!DOCTYPE html>

<html lang="fr">

<head>

<title>Studio Odyssée - Un Projet</title>

</head>

<body>

<div id="liste-billet">{% for billet in billets %}

<h2>{{ billet.titre }}</h2>

<span class="auteur">{{ billet.auteur }}</span>

{{ billet.contenu_html|safe }}

{% endfor %}</div>

</body>

</html>

Guillaume Ansel


4 conception d taill e 4 4 exemple3

4. Conception Détaillée4.4 Exemple

Résultat:

<!DOCTYPE html>

<html lang="fr">

<head>

<title>Studio Odyssée - Un Projet</title>

</head>

<body>

<div id="liste-billet">

<h2>Billet 1</h2>

<span class="auteur">Guillaume</span>

<p>contenu premier billet.</p>

<h2>Billet 2</h2>

<span class="auteur">Guillaume</span>

<p>contenu deuxième billet.</p>

</div>

</body>

</html>

Guillaume Ansel


4 conception d taill e 4 5 d ploiement

4. Conception Détaillée4.5 Déploiement

En cours de développement

  • Serveur web Python fournit par le framework

  • Pas besoin de serveur Web dédié (Apache, LighTPD)

  • Configuration automatique (d’après le fichier settings.py)

  • Interface sur 127.0.0.1:8000 par défaut

  • Mais pas utilisable en production

Guillaume Ansel


4 conception d taill e 4 5 d ploiement1

4. Conception Détaillée4.5 Déploiement

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

Guillaume Ansel


4 conception d taill e 4 5 d ploiement2

4. Conception Détaillée4.5 Déploiement

En production

Requête HTTP

Processus django

FastCGI

LighTPD

socket

Réponse HTTP

Guillaume Ansel


5 synth se

5. Synthèse

Guillaume Ansel


5 synth se1

5. Synthèse

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

Guillaume Ansel


6 conclusion

6. Conclusion

Guillaume Ansel


6 conclusion1

6. Conclusion

  • Projet intéressant car s’inscrivant dans le cadre d’une création d’entreprise

  • Cadre de travail intéressant, participation active dans les choix techniques

  • Apprentissage d’un nouveau langage de programmation (Python)

  • Nouvelle technique de développement basé sur l’utilisation du framework django (DRY « Don’tRepeatYourself»)

Guillaume Ansel


Questions

Questions ?

Guillaume Ansel


  • Login