Django compressor

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
1 de 7

Recomendados

PHP et Performances - AFUP 2005 por
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005Eric D.
1.9K vistas33 diapositivas
RMLL 2014 - Site statique avec Templer, Bootstrap et Git por
RMLL 2014 - Site statique avec Templer, Bootstrap et GitRMLL 2014 - Site statique avec Templer, Bootstrap et Git
RMLL 2014 - Site statique avec Templer, Bootstrap et GitClément OUDOT
1.5K vistas26 diapositivas
Les performances sur des développements PhP por
Les performances sur des développements PhPLes performances sur des développements PhP
Les performances sur des développements PhPneuros
959 vistas24 diapositivas
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007 por
Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007Eric D.
813 vistas39 diapositivas
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l... por
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...Clément OUDOT
1.4K vistas30 diapositivas
[#1] Qu’est ce que php? por
[#1] Qu’est ce que php?[#1] Qu’est ce que php?
[#1] Qu’est ce que php?opentuto
218 vistas6 diapositivas

Más contenido relacionado

La actualidad más candente

Optimiser wordpress por
Optimiser wordpressOptimiser wordpress
Optimiser wordpressJean-François Vial
630 vistas23 diapositivas
Optimiser WordPress por
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
1.3K vistas23 diapositivas
Réduire la taille de son apk por
Réduire la taille de son apkRéduire la taille de son apk
Réduire la taille de son apkJacques GIRAUDEL
331 vistas12 diapositivas
Mongodb introduction por
Mongodb introductionMongodb introduction
Mongodb introductioneric German
1.4K vistas10 diapositivas
Accélération des pages Web : les bases en exemple por
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
1.7K vistas45 diapositivas
Human Talks Jasmine por
Human Talks JasmineHuman Talks Jasmine
Human Talks Jasminemanudwarf
512 vistas17 diapositivas

La actualidad más candente(9)

Optimiser WordPress por Chi Nacim
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
Chi Nacim1.3K vistas
Mongodb introduction por eric German
Mongodb introductionMongodb introduction
Mongodb introduction
eric German1.4K vistas
Accélération des pages Web : les bases en exemple por Jean-Pierre Vincent
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
Jean-Pierre Vincent1.7K vistas
Human Talks Jasmine por manudwarf
Human Talks JasmineHuman Talks Jasmine
Human Talks Jasmine
manudwarf512 vistas
Plop : un micro-générateur pour se simplifier la vie au quotidien por Nicolas Carlo
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
Nicolas Carlo219 vistas

Destacado

Compressor por
CompressorCompressor
CompressorKushal Navandar
54K vistas181 diapositivas
Bauer Compressor Use & Maintenance_Certificate por
Bauer Compressor Use & Maintenance_CertificateBauer Compressor Use & Maintenance_Certificate
Bauer Compressor Use & Maintenance_CertificateVictor Fumo
564 vistas1 diapositiva
Basics of Compressor por
Basics of CompressorBasics of Compressor
Basics of CompressorSLA1987
49.7K vistas33 diapositivas
Compressors por
CompressorsCompressors
CompressorsSaurabh Jain
50K vistas24 diapositivas
Reciprocating compressor por
Reciprocating compressorReciprocating compressor
Reciprocating compressorhambardikar55
31.8K vistas63 diapositivas
Luka Moro - This way - Paroles fr por
Luka Moro - This way - Paroles frLuka Moro - This way - Paroles fr
Luka Moro - This way - Paroles frLuka Moro
14.7K vistas10 diapositivas

Destacado(20)

Bauer Compressor Use & Maintenance_Certificate por Victor Fumo
Bauer Compressor Use & Maintenance_CertificateBauer Compressor Use & Maintenance_Certificate
Bauer Compressor Use & Maintenance_Certificate
Victor Fumo564 vistas
Basics of Compressor por SLA1987
Basics of CompressorBasics of Compressor
Basics of Compressor
SLA198749.7K vistas
Reciprocating compressor por hambardikar55
Reciprocating compressorReciprocating compressor
Reciprocating compressor
hambardikar5531.8K vistas
Luka Moro - This way - Paroles fr por Luka Moro
Luka Moro - This way - Paroles frLuka Moro - This way - Paroles fr
Luka Moro - This way - Paroles fr
Luka Moro14.7K vistas
Climatiseur à recyclage d’énergie por Francois Kneider
 Climatiseur à recyclage d’énergie Climatiseur à recyclage d’énergie
Climatiseur à recyclage d’énergie
Francois Kneider1.2K vistas
Extreme JavaScript Compression With YUI Compressor por Nicholas Zakas
Extreme JavaScript Compression With YUI CompressorExtreme JavaScript Compression With YUI Compressor
Extreme JavaScript Compression With YUI Compressor
Nicholas Zakas43.4K vistas
B aby por Noa02
B abyB aby
B aby
Noa021.9K vistas
Compressor And Compressed Air Systems por Saurabh Jain
Compressor And Compressed Air SystemsCompressor And Compressed Air Systems
Compressor And Compressed Air Systems
Saurabh Jain38.3K vistas
Compte rendus de la journée le libre accès à l’information scientifique, Univ... por Mohamed Montassar BEN SLAMA
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 por Kathy Strelow
Romeo & juliet themes lessonRomeo & juliet themes lesson
Romeo & juliet themes lesson
Kathy Strelow89K vistas
Water Chilled Airconditioning por Aljon Altiche
Water Chilled AirconditioningWater Chilled Airconditioning
Water Chilled Airconditioning
Aljon Altiche71.8K vistas
Fate of pyruvate - A quick review por Namrata Chhabra
Fate of pyruvate - A quick reviewFate of pyruvate - A quick review
Fate of pyruvate - A quick review
Namrata Chhabra87.6K vistas
WordPress State of the Word 2012 por photomatt
WordPress State of the Word 2012WordPress State of the Word 2012
WordPress State of the Word 2012
photomatt146.1K vistas
Scène + fiche tech + rider fi.she.s por WE DO MUSIC
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 MUSIC5.9K vistas
Catalogue Beauté ALUMINÉ - Vinsalow partners por Vincent Barlier
 Catalogue Beauté ALUMINÉ - Vinsalow partners Catalogue Beauté ALUMINÉ - Vinsalow partners
Catalogue Beauté ALUMINÉ - Vinsalow partners
Vincent Barlier3.9K vistas
Industrial Air Compressors, Air Compressor Manufacturers Ahmedabad por Airtech Engineers
Industrial Air Compressors, Air Compressor Manufacturers AhmedabadIndustrial Air Compressors, Air Compressor Manufacturers Ahmedabad
Industrial Air Compressors, Air Compressor Manufacturers Ahmedabad
Airtech Engineers1.2K vistas

Similar a Django compressor

Des poneys à Liberation.fr por
Des poneys à Liberation.frDes poneys à Liberation.fr
Des poneys à Liberation.frliberation_dev
1K vistas11 diapositivas
Rappels Modularisation application C/C++ por
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Sylvain Leroy
1.9K vistas74 diapositivas
Panels, une autre façon de construire. DrupalCamp Paris 2013 por
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
1.4K vistas42 diapositivas
Outils front-end por
Outils front-endOutils front-end
Outils front-endThomas Bodin
138 vistas66 diapositivas
Mise en place de Nagios3 pas à pas por
Mise en place de Nagios3 pas à pas Mise en place de Nagios3 pas à pas
Mise en place de Nagios3 pas à pas yassine87
2.9K vistas6 diapositivas
On test quoi - DCLannion 2017 por
On test quoi - DCLannion 2017On test quoi - DCLannion 2017
On test quoi - DCLannion 2017Artusamak
200 vistas38 diapositivas

Similar a Django compressor(20)

Rappels Modularisation application C/C++ por Sylvain Leroy
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++
Sylvain Leroy1.9K vistas
Panels, une autre façon de construire. DrupalCamp Paris 2013 por bellesmanieres
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
bellesmanieres1.4K vistas
Mise en place de Nagios3 pas à pas por yassine87
Mise en place de Nagios3 pas à pas Mise en place de Nagios3 pas à pas
Mise en place de Nagios3 pas à pas
yassine872.9K vistas
On test quoi - DCLannion 2017 por Artusamak
On test quoi - DCLannion 2017On test quoi - DCLannion 2017
On test quoi - DCLannion 2017
Artusamak200 vistas
Git pour les (pas si) nuls por Malk Zameth
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
Malk Zameth7.5K vistas
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue por Stéphane HULARD
 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
Stéphane HULARD4.1K vistas
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache por Aurelien Navarre
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
Aurelien Navarre1.8K vistas
Performance et optimisation de PrestaShop por PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
PrestaShop3.2K vistas
GDG Rennes - Bootcamp Initiation Android - Théorie por Horacio Gonzalez
GDG Rennes - Bootcamp Initiation Android -  ThéorieGDG Rennes - Bootcamp Initiation Android -  Théorie
GDG Rennes - Bootcamp Initiation Android - Théorie
Horacio Gonzalez2.4K vistas
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging por Anne Nicolas
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 Nicolas962 vistas
Les blocs Drupal de drop.org à Drupal 8 por OSInet
Les blocs Drupal de drop.org à Drupal 8Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8
OSInet4.9K vistas
Présentation Ecreall - Mickaël Launay por Technocite
Présentation Ecreall - Mickaël LaunayPrésentation Ecreall - Mickaël Launay
Présentation Ecreall - Mickaël Launay
Technocite492 vistas

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