SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
Introduction à django compressor
             Mathieu Pillard
             https://github.com/diox
             @dioxmat




Rencontres django-fr, 16 avril 2011
Présentation
●   Application de « gestion » de medias...
●
    … sans l'aspect gestion
●
    Au départ juste une collection de filtres pour
    django_compress
●
    Documenté, testé, maintenu
●   Résout la problématique de base de faire cacher
    longtemps vos fichiers médias tout en permettant
    de les expirer immédiatement quand ca change
Principes
●   Transparent pour les développeurs
●
    De base, pas de commande de management à
    lancer
●
    Pas de « bundle » à créer dans les settings non
    plus
Fonctionnement de base
●   Utilisation du templatetag {% compress %} :
    {% compress css %}
    <link rel=stylesheet type=text/css href= 1.css>
    <link rel=stylesheet type=text/css href= 2.css>
    <style type=text/css>
    .pony {
       color : pink ;
    }
    </style>
    {% endcompress %}
●   Rendu :
    <link rel=stylesheet type=text/css href=<hash>.css
Ce que ca sait faire
●   Changement automatique et à la volée du ou des fichiers résultat quand
    les sources changent
●   Filtres disponibles : Minification, Tidy, Closure, Transformation
    automatique des urls en data URI ...
●   « Pre-compilers » disponibles : LESS, Cofeescript, SASS
●   Gère le suffixage des images dans les CSS
●   Utilisation du cache django
●   Utilisation des moteurs de stockage django pour le fichier résultat
●   Commandes de management optionnelles pour générer en « offline »
    plutôt que en live, ou générer un cache des dates de modification des
    fichiers
Comment ca fonctionne derrière
●   Vérification du cache « offline » avec un hash de la
    nodelist brute. Si présent, retourne alors l'HTML.
●   Instanciation d'un parseur (lxml/beautifulsoup),
    détermine la liste des fichiers, utilise leur nom + date
    de modif pour faire une clé unique
●   Vérification du cache principal à partir de cette clé. Si
    présent, retourne alors l'HTML.
●   Génération du fichier, application filtres/pre-
    compilers, génération d'un hash, écriture du fichier si
    nécessaire, remplissage du cache, retourne l'HTML
Conclusion
●   Utilisé en production sur les projets django de libération
●   Le cache est obligatoire pour ne pas utiliser trop de
    ressources, mais après, ca fuse !
●   Plein de settings optionnels sympas
●   Bien maintenu, pas mal de contributeurs, bien documenté
    (comment ca je répète l'intro)
●   Bref, c'est super, utilisez le ! :-)
●   https://github.com/jezdez/django_compressor , disponible
    aussi sur pypi

Weitere ähnliche Inhalte

Was ist angesagt?

Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
 
Réduire la taille de son apk
Réduire la taille de son apkRéduire la taille de son apk
Réduire la taille de son apkJacques GIRAUDEL
 
Mongodb introduction
Mongodb introductionMongodb introduction
Mongodb introductioneric German
 
Accélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleAccélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleJean-Pierre Vincent
 
Human Talks Jasmine
Human Talks JasmineHuman Talks Jasmine
Human Talks Jasminemanudwarf
 
Ma boîte à outils DevOps
Ma boîte à outils DevOpsMa boîte à outils DevOps
Ma boîte à outils DevOpsNoël Bardelot
 
Plop : un micro-générateur pour se simplifier la vie au quotidien
Plop : un micro-générateur pour se simplifier la vie au quotidienPlop : un micro-générateur pour se simplifier la vie au quotidien
Plop : un micro-générateur pour se simplifier la vie au quotidienNicolas Carlo
 

Was ist angesagt? (9)

Optimiser wordpress
Optimiser wordpressOptimiser wordpress
Optimiser wordpress
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
 
Réduire la taille de son apk
Réduire la taille de son apkRéduire la taille de son apk
Réduire la taille de son apk
 
Mongodb introduction
Mongodb introductionMongodb introduction
Mongodb introduction
 
Accélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleAccélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exemple
 
Human Talks Jasmine
Human Talks JasmineHuman Talks Jasmine
Human Talks Jasmine
 
Ma boîte à outils DevOps
Ma boîte à outils DevOpsMa boîte à outils DevOps
Ma boîte à outils DevOps
 
Puppet slides
Puppet slidesPuppet slides
Puppet slides
 
Plop : un micro-générateur pour se simplifier la vie au quotidien
Plop : un micro-générateur pour se simplifier la vie au quotidienPlop : un micro-générateur pour se simplifier la vie au quotidien
Plop : un micro-générateur pour se simplifier la vie au quotidien
 

Andere mochten auch

Bauer Compressor Use & Maintenance_Certificate
Bauer Compressor Use & Maintenance_CertificateBauer Compressor Use & Maintenance_Certificate
Bauer Compressor Use & Maintenance_CertificateVictor Fumo
 
Basics of Compressor
Basics of CompressorBasics of Compressor
Basics of CompressorSLA1987
 
Reciprocating compressor
Reciprocating compressorReciprocating compressor
Reciprocating compressorhambardikar55
 
Luka Moro - This way - Paroles fr
Luka Moro - This way - Paroles frLuka Moro - This way - Paroles fr
Luka Moro - This way - Paroles frLuka Moro
 
Climatiseur à recyclage d’énergie
 Climatiseur à recyclage d’énergie Climatiseur à recyclage d’énergie
Climatiseur à recyclage d’énergieFrancois Kneider
 
Extreme JavaScript Compression With YUI Compressor
Extreme JavaScript Compression With YUI CompressorExtreme JavaScript Compression With YUI Compressor
Extreme JavaScript Compression With YUI CompressorNicholas Zakas
 
B aby
B abyB aby
B abyNoa02
 
Curriculum Vitae (F) - GARCIA, Rocio Soledad
Curriculum Vitae (F) - GARCIA, Rocio SoledadCurriculum Vitae (F) - GARCIA, Rocio Soledad
Curriculum Vitae (F) - GARCIA, Rocio SoledadRocio Soledad Garcia
 
Compressor And Compressed Air Systems
Compressor And Compressed Air SystemsCompressor And Compressed Air Systems
Compressor And Compressed Air SystemsSaurabh Jain
 
Compte rendus de la journée le libre accès à l’information scientifique, Univ...
Compte rendus de la journée le libre accès à l’information scientifique, Univ...Compte rendus de la journée le libre accès à l’information scientifique, Univ...
Compte rendus de la journée le libre accès à l’information scientifique, Univ...Mohamed Montassar BEN SLAMA
 
Romeo & juliet themes lesson
Romeo & juliet themes lessonRomeo & juliet themes lesson
Romeo & juliet themes lessonKathy Strelow
 
Water Chilled Airconditioning
Water Chilled AirconditioningWater Chilled Airconditioning
Water Chilled AirconditioningAljon Altiche
 
Fate of pyruvate - A quick review
Fate of pyruvate - A quick reviewFate of pyruvate - A quick review
Fate of pyruvate - A quick reviewNamrata Chhabra
 
WordPress State of the Word 2012
WordPress State of the Word 2012WordPress State of the Word 2012
WordPress State of the Word 2012photomatt
 
Scène + fiche tech + rider fi.she.s
Scène + fiche tech + rider fi.she.s Scène + fiche tech + rider fi.she.s
Scène + fiche tech + rider fi.she.s WE DO MUSIC
 
Catalogue Beauté ALUMINÉ - Vinsalow partners
 Catalogue Beauté ALUMINÉ - Vinsalow partners Catalogue Beauté ALUMINÉ - Vinsalow partners
Catalogue Beauté ALUMINÉ - Vinsalow partnersVincent Barlier
 
Industrial Air Compressors, Air Compressor Manufacturers Ahmedabad
Industrial Air Compressors, Air Compressor Manufacturers AhmedabadIndustrial Air Compressors, Air Compressor Manufacturers Ahmedabad
Industrial Air Compressors, Air Compressor Manufacturers AhmedabadAirtech Engineers
 

Andere mochten auch (20)

Compressor
CompressorCompressor
Compressor
 
Bauer Compressor Use & Maintenance_Certificate
Bauer Compressor Use & Maintenance_CertificateBauer Compressor Use & Maintenance_Certificate
Bauer Compressor Use & Maintenance_Certificate
 
Basics of Compressor
Basics of CompressorBasics of Compressor
Basics of Compressor
 
Compressors
CompressorsCompressors
Compressors
 
Reciprocating compressor
Reciprocating compressorReciprocating compressor
Reciprocating compressor
 
Luka Moro - This way - Paroles fr
Luka Moro - This way - Paroles frLuka Moro - This way - Paroles fr
Luka Moro - This way - Paroles fr
 
Climatiseur à recyclage d’énergie
 Climatiseur à recyclage d’énergie Climatiseur à recyclage d’énergie
Climatiseur à recyclage d’énergie
 
Extreme JavaScript Compression With YUI Compressor
Extreme JavaScript Compression With YUI CompressorExtreme JavaScript Compression With YUI Compressor
Extreme JavaScript Compression With YUI Compressor
 
B aby
B abyB aby
B aby
 
Curriculum Vitae (F) - GARCIA, Rocio Soledad
Curriculum Vitae (F) - GARCIA, Rocio SoledadCurriculum Vitae (F) - GARCIA, Rocio Soledad
Curriculum Vitae (F) - GARCIA, Rocio Soledad
 
Compressor And Compressed Air Systems
Compressor And Compressed Air SystemsCompressor And Compressed Air Systems
Compressor And Compressed Air Systems
 
Compte rendus de la journée final v5
Compte rendus de la journée final v5Compte rendus de la journée final v5
Compte rendus de la journée final v5
 
Compte rendus de la journée le libre accès à l’information scientifique, Univ...
Compte rendus de la journée le libre accès à l’information scientifique, Univ...Compte rendus de la journée le libre accès à l’information scientifique, Univ...
Compte rendus de la journée le libre accès à l’information scientifique, Univ...
 
Romeo & juliet themes lesson
Romeo & juliet themes lessonRomeo & juliet themes lesson
Romeo & juliet themes lesson
 
Water Chilled Airconditioning
Water Chilled AirconditioningWater Chilled Airconditioning
Water Chilled Airconditioning
 
Fate of pyruvate - A quick review
Fate of pyruvate - A quick reviewFate of pyruvate - A quick review
Fate of pyruvate - A quick review
 
WordPress State of the Word 2012
WordPress State of the Word 2012WordPress State of the Word 2012
WordPress State of the Word 2012
 
Scène + fiche tech + rider fi.she.s
Scène + fiche tech + rider fi.she.s Scène + fiche tech + rider fi.she.s
Scène + fiche tech + rider fi.she.s
 
Catalogue Beauté ALUMINÉ - Vinsalow partners
 Catalogue Beauté ALUMINÉ - Vinsalow partners Catalogue Beauté ALUMINÉ - Vinsalow partners
Catalogue Beauté ALUMINÉ - Vinsalow partners
 
Industrial Air Compressors, Air Compressor Manufacturers Ahmedabad
Industrial Air Compressors, Air Compressor Manufacturers AhmedabadIndustrial Air Compressors, Air Compressor Manufacturers Ahmedabad
Industrial Air Compressors, Air Compressor Manufacturers Ahmedabad
 

Ähnlich wie Django compressor

Des poneys à Liberation.fr
Des poneys à Liberation.frDes poneys à Liberation.fr
Des poneys à Liberation.frliberation_dev
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Sylvain Leroy
 
Panels, une autre façon de construire. DrupalCamp Paris 2013
Panels, une autre façon de construire. DrupalCamp Paris 2013Panels, une autre façon de construire. DrupalCamp Paris 2013
Panels, une autre façon de construire. DrupalCamp Paris 2013bellesmanieres
 
Mise en place de Nagios3 pas à pas
Mise en place de Nagios3 pas à pas Mise en place de Nagios3 pas à pas
Mise en place de Nagios3 pas à pas yassine87
 
On test quoi - DCLannion 2017
On test quoi - DCLannion 2017On test quoi - DCLannion 2017
On test quoi - DCLannion 2017Artusamak
 
Introduction à CakePHP
Introduction à CakePHPIntroduction à CakePHP
Introduction à CakePHPPierre MARTIN
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secretsAymeric Bouillat
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nulsMalk Zameth
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continueStéphane HULARD
 
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheMeetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheAurelien Navarre
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPrestaShop
 
GDG Rennes - Bootcamp Initiation Android - Théorie
GDG Rennes - Bootcamp Initiation Android -  ThéorieGDG Rennes - Bootcamp Initiation Android -  Théorie
GDG Rennes - Bootcamp Initiation Android - ThéorieHoracio Gonzalez
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projectsThierry Gayet
 
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Anne Nicolas
 
Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8OSInet
 
Présentation Ecreall - Mickaël Launay
Présentation Ecreall - Mickaël LaunayPrésentation Ecreall - Mickaël Launay
Présentation Ecreall - Mickaël LaunayTechnocite
 

Ähnlich wie Django compressor (20)

Des poneys à Liberation.fr
Des poneys à Liberation.frDes poneys à Liberation.fr
Des poneys à Liberation.fr
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++
 
Panels, une autre façon de construire. DrupalCamp Paris 2013
Panels, une autre façon de construire. DrupalCamp Paris 2013Panels, une autre façon de construire. DrupalCamp Paris 2013
Panels, une autre façon de construire. DrupalCamp Paris 2013
 
Outils front-end
Outils front-endOutils front-end
Outils front-end
 
Mise en place de Nagios3 pas à pas
Mise en place de Nagios3 pas à pas Mise en place de Nagios3 pas à pas
Mise en place de Nagios3 pas à pas
 
On test quoi - DCLannion 2017
On test quoi - DCLannion 2017On test quoi - DCLannion 2017
On test quoi - DCLannion 2017
 
Optimisation de son site web
Optimisation de son site webOptimisation de son site web
Optimisation de son site web
 
Drupal Performance
Drupal PerformanceDrupal Performance
Drupal Performance
 
Introduction à CakePHP
Introduction à CakePHPIntroduction à CakePHP
Introduction à CakePHP
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secrets
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheMeetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 
GDG Rennes - Bootcamp Initiation Android - Théorie
GDG Rennes - Bootcamp Initiation Android -  ThéorieGDG Rennes - Bootcamp Initiation Android -  Théorie
GDG Rennes - Bootcamp Initiation Android - Théorie
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projects
 
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
 
Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8
 
Présentation Ecreall - Mickaël Launay
Présentation Ecreall - Mickaël LaunayPrésentation Ecreall - Mickaël Launay
Présentation Ecreall - Mickaël Launay
 
git.pdf
git.pdfgit.pdf
git.pdf
 

Django compressor

  • 1. Introduction à django compressor Mathieu Pillard https://github.com/diox @dioxmat Rencontres django-fr, 16 avril 2011
  • 2. Présentation ● Application de « gestion » de medias... ● … sans l'aspect gestion ● Au départ juste une collection de filtres pour django_compress ● Documenté, testé, maintenu ● Résout la problématique de base de faire cacher longtemps vos fichiers médias tout en permettant de les expirer immédiatement quand ca change
  • 3. Principes ● Transparent pour les développeurs ● De base, pas de commande de management à lancer ● Pas de « bundle » à créer dans les settings non plus
  • 4. Fonctionnement de base ● Utilisation du templatetag {% compress %} : {% compress css %} <link rel=stylesheet type=text/css href= 1.css> <link rel=stylesheet type=text/css href= 2.css> <style type=text/css> .pony { color : pink ; } </style> {% endcompress %} ● Rendu : <link rel=stylesheet type=text/css href=<hash>.css
  • 5. Ce que ca sait faire ● Changement automatique et à la volée du ou des fichiers résultat quand les sources changent ● Filtres disponibles : Minification, Tidy, Closure, Transformation automatique des urls en data URI ... ● « Pre-compilers » disponibles : LESS, Cofeescript, SASS ● Gère le suffixage des images dans les CSS ● Utilisation du cache django ● Utilisation des moteurs de stockage django pour le fichier résultat ● Commandes de management optionnelles pour générer en « offline » plutôt que en live, ou générer un cache des dates de modification des fichiers
  • 6. Comment ca fonctionne derrière ● Vérification du cache « offline » avec un hash de la nodelist brute. Si présent, retourne alors l'HTML. ● Instanciation d'un parseur (lxml/beautifulsoup), détermine la liste des fichiers, utilise leur nom + date de modif pour faire une clé unique ● Vérification du cache principal à partir de cette clé. Si présent, retourne alors l'HTML. ● Génération du fichier, application filtres/pre- compilers, génération d'un hash, écriture du fichier si nécessaire, remplissage du cache, retourne l'HTML
  • 7. Conclusion ● Utilisé en production sur les projets django de libération ● Le cache est obligatoire pour ne pas utiliser trop de ressources, mais après, ca fuse ! ● Plein de settings optionnels sympas ● Bien maintenu, pas mal de contributeurs, bien documenté (comment ca je répète l'intro) ● Bref, c'est super, utilisez le ! :-) ● https://github.com/jezdez/django_compressor , disponible aussi sur pypi