{"id":1695,"date":"2011-09-30T23:59:56","date_gmt":"2011-09-30T21:59:56","guid":{"rendered":"http:\/\/j-mad.com\/blog\/?p=1695"},"modified":"2011-10-01T00:03:55","modified_gmt":"2011-09-30T22:03:55","slug":"sans-lui-zinnia-rrivait-pas-lui-qui%c2%a0-django-zinnia-la-django-app-du-mois-precedent","status":"publish","type":"post","link":"https:\/\/j-mad.com\/blog\/2011\/09\/30\/sans-lui-zinnia-rrivait-pas-lui-qui%c2%a0-django-zinnia-la-django-app-du-mois-precedent\/","title":{"rendered":"Sans lui, zinnia-rrivait pas. Lui qui\u00a0? Django Zinnia, la django app du mois pr\u00e9c\u00e9dent"},"content":{"rendered":"<p>Cela fait maintenant plusieurs mois que je n&#8217;arrive pas \u00e0 rattraper le retard d&#8217;une django app du mois. J&#8217;ai donc d\u00e9cid\u00e9 de suivre les conseils de ce cher daks et d&#8217;officialiser mon retard en parlant de Django app du mois pr\u00e9c\u00e9dent. Voici donc la premi\u00e8re django app du mois pr\u00e9c\u00e9dent (et bon j&#8217;ai bien failli devoir parler de la django app d&#8217;il y a deux mois), Django Zinnia, un moteur de blog qu&#8217;il est bien (et merci \u00e0 <a href=\"http:\/\/twitter.com\/#!\/arcagenis\/\" target=\"_blank\">arcagenis<\/a> pour la d\u00e9couverte)<\/p>\n<h1>1- O\u00f9 on le trouve, comment on l\u2019installe, tout \u00e7a quoi (et la doc)\u00a0?<\/h1>\n<p>O\u00f9 est ce qu&#8217;on le trouve, sur son <a href=\"http:\/\/django-blog-zinnia.com\/blog\/\" target=\"_blank\">site web<\/a>, sa page <a href=\"http:\/\/pypi.python.org\/pypi\/django-blog-zinnia\/0.9\" target=\"_blank\">pypi<\/a> et sa page <a href=\"https:\/\/github.com\/Fantomas42\/django-blog-zinnia\" target=\"_blank\">github<\/a>.<\/p>\n<p>Pour l&#8217;installer, vous aurez plusieurs plusieurs solutions\u00a0:<\/p>\n<ul>\n<li>un git clone tout simple<\/li>\n<li>un petit pip install en utilisant le support git de pip<\/li>\n<li>un petit easy_install ( ou pip install normal) pour avoir la derni\u00e8re version stable.<\/li>\n<\/ul>\n<p>Niveau d\u00e9mo, il existe et c&#8217;est carr\u00e9ment cool\u00a0:<\/p>\n<ul>\n<li>une d\u00e9mo du rendu (qui sert \u00e0 h\u00e9berger la doc)<\/li>\n<li>une d\u00e9mo de la version d&#8217;administration.<\/li>\n<li>Un planet qui liste tous les blogs utilisant Zinnia<\/li>\n<\/ul>\n<p>Concernant la <a href=\"http:\/\/django-blog-zinnia.com\/documentation\/\" target=\"_blank\">doc<\/a>, elle est vraiment super bien foutue et tr\u00e8s compl\u00e8te. Installation, Configuration, Configuration avanc\u00e9e, extensibilit\u00e9, etc etc \u2026 C&#8217;est vraiment une des meilleures docs d&#8217;application django que j&#8217;ai pu lire. Pour ne pas dire la meilleure d&#8217;ailleurs.<\/p>\n<p>Cerise sur le g\u00e2teau, on peut m\u00eame voir la <a href=\"http:\/\/django-blog-zinnia.com\/documentation\/coverage\/\" target=\"_blank\">couverture de code des tests.<\/a><\/p>\n<h1>2- Mais au fait, \u00e0 quoi \u00e7a sert\u00a0?<\/h1>\n<p>Bon, je l&#8217;ai dit c&#8217;est un moteur de blog. Donc on a des cat\u00e9gories, des billets, des tags, et des flux RSS.<\/p>\n<p>Mais ce n&#8217;est pas tout, Zinnia propose vraiment pas mal de petites fonctionnalit\u00e9s qui en font un vrai moteur de blog, qui (et je le dis sinc\u00e8rement) peut imaginer concurrencer certains moteurs de blogs php tr\u00e8s connus.<\/p>\n<p>Zinnia offre par exemple\u00a0:<\/p>\n<ul>\n<li>des url shortenners<\/li>\n<li>de la publication de tweets automatique sur publication d&#8217;article<\/li>\n<li>un moteur de recherche interne<\/li>\n<li>d\u00e9tection des spams avec askimet (ou autre)<\/li>\n<li>des sitemap<\/li>\n<li>des channels, un truc sp\u00e9cifique \u00e0 Zinnia<\/li>\n<li>une extension facile, \u2026.<\/li>\n<\/ul>\n<p>Et si vous avez d\u00e9j\u00e0 un blog\u00a0? Genre WordPress ou Blogger\u00a0?<\/p>\n<p>Et ben Zinnia offre des moulinettes d&#8217;import \/ export. Et \u00e7a, c&#8217;est vraiment terrible.<\/p>\n<h1>3- Bon et en conclusion\u00a0?<\/h1>\n<p>Il y a a mon sens plein de bonnes id\u00e9es dans Zinnia\u00a0:<\/p>\n<ul>\n<li>Les script d&#8217;import \/ export sont tout simplement un must have qui vont que l&#8217;on peut vraiment imaginer migrer un blog existant sous Zinnia.<\/li>\n<li>Les channels qui permettent de r\u00e9utiliser le moteur de recherche interne (qui utilise <a href=\"http:\/\/pyparsing.wikispaces.com\/\" target=\"_blank\">pyparsing<\/a>) pour faire des recherches parmis les articles et en sortir une partie.<\/li>\n<li>Les models qui sont bien fait, \u00e0 base de classe abstract et permettent de surcharger sans difficult\u00e9 les choses.<\/li>\n<li>Il utilise south ce qui doit faciliter les migrations.<\/li>\n<\/ul>\n<p>A tout cela il faut ajouter le fait qu&#8217;il n&#8217;y est au final que peu de d\u00e9pendances. Au niveau des apps django, il n&#8217;y a que deux d\u00e9pendances obligatoires\u00a0:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/django-mptt\/django-mptt\/\" target=\"_blank\">django-mptt<\/a><\/li>\n<li><a href=\"http:\/\/code.google.com\/p\/django-tagging\/\" target=\"_blank\">django-tagging<\/a><\/li>\n<\/ul>\n<p>Apr\u00e8s cela d\u00e9pends des fonctionnalit\u00e9s que vous voulez mettre en place, mais cela reste tr\u00e8s light et tr\u00e8s clair. (je ne parlerais pas par exemple de pinax qui en comparaison me fait l&#8217;effet d&#8217;une usine \u00e0 gaz).<\/p>\n<p>Je vais donc suivre ce projet avec int\u00e9r\u00eat et m\u00eame si je ne suis pas sur de passer tout de suite le mad blog en Zinnia, je vais en migrer d&#8217;autre d&#8217;ici quelques temps, \u00e7a, c&#8217;est certain.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cela fait maintenant plusieurs mois que je n&#8217;arrive pas \u00e0 rattraper le retard d&#8217;une django app du mois. J&#8217;ai donc d\u00e9cid\u00e9 de suivre les conseils de ce cher daks et d&#8217;officialiser mon retard en parlant de Django app du mois pr\u00e9c\u00e9dent. Voici donc la premi\u00e8re django app du mois pr\u00e9c\u00e9dent (et bon j&#8217;ai bien failli &hellip; <a href=\"https:\/\/j-mad.com\/blog\/2011\/09\/30\/sans-lui-zinnia-rrivait-pas-lui-qui%c2%a0-django-zinnia-la-django-app-du-mois-precedent\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Sans lui, zinnia-rrivait pas. Lui qui\u00a0? Django Zinnia, la django app du mois pr\u00e9c\u00e9dent<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[35],"tags":[],"class_list":["post-1695","post","type-post","status-publish","format-standard","hentry","category-la-django-app-du-mois"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p12cdp-rl","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/1695","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/comments?post=1695"}],"version-history":[{"count":3,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/1695\/revisions"}],"predecessor-version":[{"id":1697,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/1695\/revisions\/1697"}],"wp:attachment":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/media?parent=1695"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/categories?post=1695"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/tags?post=1695"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}