{"id":784,"date":"2010-08-31T23:15:48","date_gmt":"2010-08-31T21:15:48","guid":{"rendered":"http:\/\/j-mad.com\/blog\/?p=784"},"modified":"2010-08-31T23:15:48","modified_gmt":"2010-08-31T21:15:48","slug":"django-simple-captcha-et-tout-devient-si-simple","status":"publish","type":"post","link":"https:\/\/j-mad.com\/blog\/2010\/08\/31\/django-simple-captcha-et-tout-devient-si-simple\/","title":{"rendered":"Django Simple Captcha et tout devient si simple"},"content":{"rendered":"<p>Comme d&#8217;habitude le mois d&#8217;aout fut une vraie folie. Et qui dit mois de folie dit, billet qui prennent du retard. Heureusement que j&#8217;ai pu tricher en publiant la premi\u00e8re interview. (ben oui c&#8217;est beaucoup plus rapide de poser des questions que d&#8217;y r\u00e9pondre, enfin beaucoup plus rapide d&#8217;\u00e9crire les questions dans un mails quoi).<\/p>\n<p>Du coup, je suis presque en retard pour la django app du mois. Et pour ne pas \u00eatre en retard, j&#8217;ai choisi pour ce mois ci, une django app simple, mais tr\u00e8s utile, <a href=\"http:\/\/code.google.com\/p\/django-simple-captcha\/\">django simple captcha<\/a> (pour la petite histoire j&#8217;ai d\u00e9couverte cette app en testant <a href=\"http:\/\/github.com\/philippbosch\/django-tellafriend\/\">django-tellafriend<\/a>, une application dont il faudra que je vous parle \u00e9galement).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-785\" title=\"Captcha3\" src=\"http:\/\/j-mad.com\/blog\/wp-content\/uploads\/2010\/08\/Captcha3.png\" alt=\"\" width=\"296\" height=\"162\" srcset=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2010\/08\/Captcha3.png 296w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2010\/08\/Captcha3-150x82.png 150w\" sizes=\"auto, (max-width: 296px) 100vw, 296px\" \/><\/p>\n<h1>1- O\u00f9 on le trouve, comment on l\u2019installe, tout \u00e7a quoi (et la doc)\u00a0?<\/h1>\n<p>Alors on le trouve, tout simplement, sur la page google code qui lui est consacr\u00e9. Pour l&#8217;installation,\u00a0\u00a0 c&#8217;est comme toujours du classique (ha ce que j&#8217;aimerais un jour, avoir une surprise \u00e0 ce niveau l\u00e0, pouvoir gouter \u00e0 un peu de nouveaut\u00e9&#8230; mais non, c&#8217;est toujours pareil.<\/p>\n<p>Vous avez donc le choix entre\u00a0:<\/p>\n<ul>\n<li>easy_install<\/li>\n<li>un tar.gz de la derni\u00e8re release<\/li>\n<li>un checkout de SVN<\/li>\n<\/ul>\n<p>Dans tout les cas, il vous suffira une fois votre petite application install\u00e9e, de la rajouter dans les INSTALLED_APP, de lancer un petit syncdb et magie&#8230; \u00e7a fonctionnera.<\/p>\n<p>Enfin, si vous avez pens\u00e9 \u00e0 installer PIL, bien entendu.<\/p>\n<p>La doc elle, est minimaliste mais plut\u00f4t claire et bien faite.<\/p>\n<h1>2- Mais au fait, \u00e0 quoi \u00e7a sert\u00a0?<\/h1>\n<p>He ben mon cher ami, c&#8217;est indiqu\u00e9 dans le titre. C&#8217;est une application de captcha. Elle permet dans sa version de base de proposer trois m\u00e9thodes de tests de l&#8217;utilisateur\u00a0:<br \/>\nle tr\u00e8s classique lettre dans le d\u00e9sordre<br \/>\nl&#8217;op\u00e9ration math\u00e9matique (toi aussi r\u00e9pond \u00e0 4+2)<br \/>\nle choix d&#8217;un mot, au hasard, dans un dictionnaire.<\/p>\n<p>Et l\u00e0, ou c&#8217;est vraiment le top avec cette petite app, c&#8217;est que si vous avez install\u00e9 Flite, vous pourrez m\u00eame avoir votre captcha en Text-so-speech, et vive l&#8217;accessibilit\u00e9\u00a0!!<\/p>\n<h1>3- Comment \u00e7a marche\u00a0?<\/h1>\n<p>En fait rien de plus simple, l&#8217;app fourni tout simplement un noueau type de Field a utiliser dans un formulaire.<\/p>\n<p>Et oui, rien de plus simple.<\/p>\n<p>On cr\u00e9e son formulaire, on rajouter un champ Captcha et quand le formulaire a \u00e9t\u00e9 post\u00e9, on fait un joli is_valid() pour savoir si c&#8217;est bon.<br \/>\nEt au niveau de la configuration, les possibilit\u00e9s sont tr\u00e8s compl\u00e8tes. On peut configurer le taux de bruit appliqu\u00e9 \u00e0 l&#8217;image, les inclinaisons maximums appliqu\u00e9s aux lettres et aux chiffres, la font \u00e0 utiliser ainsi que sa taille, les diff\u00e9rentes couleurs, etc etc,<\/p>\n<h1>4- Mais encore<\/h1>\n<p>Ce qui est de bien avec cette app, c&#8217;est qu&#8217;en plus de penser \u00e0 tout ce qui accessibilit\u00e9, elle est bien pens\u00e9. Elle vous permet en effet de rajouter vos propres g\u00e9n\u00e9rateurs de tests. Il suffit de coder une petite fonction qui renverra un tuple contenant la question et sa r\u00e9ponse dans un tuple. Et le tour est jou\u00e9.<\/p>\n<p>Et \u00e7a c&#8217;est plut\u00f4t tr\u00e8s sympa.<\/p>\n<p>Derni\u00e8re pr\u00e9cision, la page google code contient un bouton flattr, si vous avez un compte flattr (cet excellent nouveau syst\u00e8me de r\u00e9tribution dont il faudra que je parle un jour, mais google est votre ami), n&#8217;h\u00e9sitez pas \u00e0 cliquer sur le bouton.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comme d&#8217;habitude le mois d&#8217;aout fut une vraie folie. Et qui dit mois de folie dit, billet qui prennent du retard. Heureusement que j&#8217;ai pu tricher en publiant la premi\u00e8re interview. (ben oui c&#8217;est beaucoup plus rapide de poser des questions que d&#8217;y r\u00e9pondre, enfin beaucoup plus rapide d&#8217;\u00e9crire les questions dans un mails quoi). &hellip; <a href=\"https:\/\/j-mad.com\/blog\/2010\/08\/31\/django-simple-captcha-et-tout-devient-si-simple\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Django Simple Captcha et tout devient si simple<\/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":[99,98,24],"class_list":["post-784","post","type-post","status-publish","format-standard","hentry","category-la-django-app-du-mois","tag-django","tag-python","tag-review"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p12cdp-cE","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/784","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=784"}],"version-history":[{"count":2,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/784\/revisions"}],"predecessor-version":[{"id":787,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/784\/revisions\/787"}],"wp:attachment":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/media?parent=784"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/categories?post=784"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/tags?post=784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}