Successfully reported this slideshow.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Django compressor

  1. 1. Introduction à django compressor Mathieu Pillard https://github.com/diox @dioxmat Rencontres django-fr, 16 avril 2011
  2. 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. 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. 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. 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. 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. 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

×