Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 22KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. <!doctype html>
  2. <html lang=fr>
  3. <head>
  4. <!-- Always define the charset before the title -->
  5. <meta charset=utf-8>
  6. <title>Comment installer Django — Biologeek — David Larlet</title>
  7. <!-- Define a viewport to mobile devices to use - telling the browser to assume that the page is as wide as the device (width=device-width) and setting the initial page zoom level to be 1 (initial-scale=1.0) -->
  8. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  9. <!-- Fake favicon, to avoid extra request to the server -->
  10. <link rel="icon" href="data:;base64,iVBORw0KGgo=">
  11. <link type="application/atom+xml" rel="alternate" title="Feed" href="/david/log/" />
  12. <link rel="manifest" href="/manifest.json">
  13. <link rel="stylesheet" href="/static/david/css/larlet-david-_J6Rv.css" data-instant-track />
  14. <noscript>
  15. <style type="text/css">
  16. /* Otherwise fonts are loaded by JS for faster initial rendering. See scripts at the bottom. */
  17. body {
  18. font-family: 'EquityTextB', serif;
  19. }
  20. h1, h2, h3, h4, h5, h6, time, nav a, nav a:link, nav a:visited {
  21. font-family: 'EquityCapsB', sans-serif;
  22. font-variant: normal;
  23. }
  24. </style>
  25. </noscript>
  26. <!-- Canonical URL for SEO purposes -->
  27. <link rel="canonical" href="https://larlet.fr/david/biologeek/archives/20060617-comment-installer-django">
  28. </head>
  29. <body>
  30. <div>
  31. <header>
  32. <nav>
  33. <p>
  34. <small>
  35. Je suis <a href="/david/" title="Profil public">David Larlet</a>, <a href="/david/pro/" title="Activité professionnelle">artisan</a> du web qui vous <a href="/david/pro/accompagnement/" title="Activité d’accompagnement">accompagne</a><span class="more-infos"> dans l’acquisition de savoirs pour concevoir des <a href="/david/pro/produits-essentiels/" title="Qu’est-ce qu’un produit essentiel ?">produits essentiels</a></span>. <span class="more-more-infos">Discutons ensemble d’une <a href="/david/pro/devis/" title="En savoir plus">non-demande de devis</a>.</span> Je partage ici mes <a href="/david/blog/" title="Expériences bienveillantes">réflexions</a> et <a href="/david/correspondances/2017/" title="Lettres hebdomadaires">correspondances</a>.
  36. </small>
  37. </p>
  38. </nav>
  39. </header>
  40. <section>
  41. <h1 property="schema:name">Comment installer Django</h1>
  42. <article typeof="schema:BlogPosting">
  43. <div property="schema:articleBody">
  44. <img src="/static/david/biologeek/images/logos/django.png" alt="vignette" style="float:left; margin: 0.5em 1em;" property="schema:thumbnailUrl" />
  45. <p>Ce document décrit les différentes étapes nécessaires à l'installation de
  46. Django.</p>
  47. <div class="section">
  48. <h1><a id="installer-python" name="installer-python">Installer Python</a></h1>
  49. <p>Étant un framework web en Python, Django requiert Python.</p>
  50. <p>Il fonctionne avec n'importe quelle version de Python supérieure ou égale à 2.3.</p>
  51. <p>Récupérez Python sur www.python.org. Si vous êtes sous GNU/Linux ou MacOS X,
  52. il est déjà probablement installé sur votre machine.</p>
  53. </div>
  54. <div class="section">
  55. <h1><a id="installer-apache-et-mod-python" name="installer-apache-et-mod-python">Installer Apache et mod_python</a></h1>
  56. <p>Si vous voulez juste expérimenter Django, sautez cette étape. Django fournit
  57. sont propre serveur Web destiné à la phase de développement.</p>
  58. <p>Si vous voulez utiliser Django sur un site en production, utilisez
  59. Apache avec <a class="reference" href="http://www.modpython.org/">mod_python</a>. mod_python est similaire à mod_perl -- il
  60. embarque Python à l'intérieur d'Apache et charge le code Python en
  61. mémoire quand le serveur démarre. Le code reste en mémoire pendant
  62. toute la durée de vie d'un processus Apache, ce qui mène à des
  63. performances significatives par rapport à d'autres architectures de
  64. serveurs. Vérifiez que vous avez Apache d'installé, avec le module
  65. mod_python d'activé. Django requiert Apache 2.x et mod_python 3.x.</p>
  66. <p>Lisez <a class="reference" href="http://www.djangoproject.com/documentation/modpython/">comment utiliser Django avec mod_python</a> pour les informations
  67. concernant la configuration de mod_python une fois que vous l'avez installé.</p>
  68. <p>Si vous ne pouvez pas utiliser mod_python pour une quelconque raison, n'ayez
  69. pas peur : Django suit la spécification <a class="reference" href="http://www.python.org/peps/pep-0333.html">WSGI</a>, qui lui permet d'être
  70. exécuté sur de nombreuses plate-formes de serveurs. Lisez la <a class="reference" href="http://code.djangoproject.com/wiki/ServerArrangements">page wiki
  71. sur les architectures de serveurs</a> pour les instructions spécifiques
  72. à l'installation pour chaque plate-forme.</p>
  73. </div>
  74. <div class="section">
  75. <h1><a id="faire-marcher-votre-base-de-donn-es" name="faire-marcher-votre-base-de-donn-es">Faire marcher votre base de données</a></h1>
  76. <p>Si vous prévoyez d'utiliser l'API d'accès aux bases de données fournie
  77. par Django, vous aurez besoin qu'un serveur de base de données soit lancé.
  78. Django marche avec <a class="reference" href="http://www.postgresql.org/">PostgreSQL</a> (recommandé), <a class="reference" href="http://www.mysql.com/">MySQL</a> et <a class="reference" href="http://www.sqlite.org/">SQLite</a>.</p>
  79. <p>De plus, vous aurez besoin d'avoir installé une surcouche Python pour la
  80. base de données utilisée.</p>
  81. <ul class="simple">
  82. <li>Si vous utilisez PostgreSQL, vous aurez besoin du paquet <a class="reference" href="http://initd.org/projects/psycopg1">psycopg</a> (version 1.1
  83. -- pas la version 1.0 ni la version 2, qui est toujours en bêta). Si vous êtes
  84. sous Windows, récupérez la <a class="reference" href="http://stickpeople.com/projects/python/win-psycopg/">version précompilée non-officielle pour Windows</a>.</li>
  85. <li>Si vous utilisez MySQL, vous aurez besoin de <a class="reference" href="http://sourceforge.net/projects/mysql-python">MySQLdb</a>.</li>
  86. <li>Si vous utilisez SQLite, vous aurez besoin de <a class="reference" href="http://initd.org/tracker/pysqlite">pysqlite</a>. Utilisez la
  87. version 2.0.3 ou plus.</li>
  88. </ul>
  89. </div>
  90. <div class="section">
  91. <h1><a id="installer-le-code-de-django" name="installer-le-code-de-django">Installer le code de Django</a></h1>
  92. <p>Les instructions d'installation sont quelque peu différentes si vous
  93. utilisez la dernière version officielle ou la dernière version en développement.</p>
  94. <p>Quelle que soit la version choisie, la démarche est facile.</p>
  95. <div class="section">
  96. <h2><a id="installation-de-la-version-officielle" name="installation-de-la-version-officielle">Installation de la version officielle</a></h2>
  97. <ol class="arabic simple">
  98. <li>Téléchargez Django-0.95.tar.gz depuis notre <a class="reference" href="http://www.djangoproject.com/download/">page de téléchargement</a>.</li>
  99. <li><tt class="docutils literal"><span class="pre">tar</span> <span class="pre">xzvf</span> <span class="pre">Django-0.95.tar.gz</span></tt></li>
  100. <li><tt class="docutils literal"><span class="pre">cd</span> <span class="pre">Django-0.95</span></tt></li>
  101. <li><tt class="docutils literal"><span class="pre">sudo</span> <span class="pre">python</span> <span class="pre">setup.py</span> <span class="pre">install</span></tt></li>
  102. </ol>
  103. <p>Notez que la dernière commande téléchargera et installera automatiquement
  104. <a class="reference" href="http://peak.telecommunity.com/DevCenter/setuptools">setuptools</a> si vous ne l'avez pas déjà d'installé. Ceci requiert une connexion
  105. internet en état de marche.</p>
  106. <p>Ceci installera Django dans le répertoire <tt class="docutils literal"><span class="pre">site-packages</span></tt> de votre
  107. installation Python.</p>
  108. </div>
  109. <div class="section">
  110. <h2><a id="installation-de-la-version-en-d-veloppement" name="installation-de-la-version-en-d-veloppement">Installation de la version en développement</a></h2>
  111. <ol class="arabic">
  112. <li><p class="first">Vérifiez que vous ayez <a class="reference" href="http://subversion.tigris.org/">Subversion</a> d'installé.</p>
  113. </li>
  114. <li><p class="first"><tt class="docutils literal"><span class="pre">svn</span> <span class="pre">co</span> <span class="pre">http://code.djangoproject.com/svn/django/trunk/</span> <span class="pre">django_src</span></tt></p>
  115. </li>
  116. <li><p class="first">Faites un lien symbolique de <tt class="docutils literal"><span class="pre">django_src/django</span></tt> nommé <tt class="docutils literal"><span class="pre">django</span></tt> à
  117. l'intérieur de votre répertoire Python <tt class="docutils literal"><span class="pre">site-packages</span></tt>:</p>
  118. <p><tt class="docutils literal"><span class="pre">ln</span> <span class="pre">-s</span> <span class="pre">`pwd`/django_src/django</span> <span class="pre">/usr/lib/python2.3/site-packages/django</span></tt></p>
  119. <p>(Dans la ligne ci-dessus, changez <tt class="docutils literal"><span class="pre">python2.3</span></tt> pour qu'il corresponde à
  120. votre version de python en cours.)</p>
  121. </li>
  122. </ol>
  123. <p>Vous n'avez pas à exécuter <tt class="docutils literal"><span class="pre">python</span> <span class="pre">setup.py</span> <span class="pre">install</span></tt>.</p>
  124. <p>Lorsque vous voudrez mettre à jour votre code, exécutez simplement la commande
  125. <tt class="docutils literal"><span class="pre">svn</span> <span class="pre">update</span></tt> depuis le répertoire <tt class="docutils literal"><span class="pre">django_src</span></tt>.</p>
  126. <p>Vous pouvez maintenant retourner à la <a class="reference" href="https://larlet.fr/david/biologeek/archives/20060617-traduction-francaise-de-la-documentation-de-django-le-framework-web-python/">page d'accueil des traductions de la
  127. documentation de Django</a>.</p>
  128. <p>Cette traduction correspond à la révision 3589 (post 0.95).</p>
  129. </div>
  130. </div>
  131. </div>
  132. </article>
  133. <footer>
  134. <h6 property="schema:datePublished">— 17/06/2006</h6>
  135. </footer>
  136. </section>
  137. <section>
  138. <div>
  139. <h3>Articles peut-être en rapport</h3>
  140. <ul>
  141. <li><a href="/david/biologeek/archives/20060815-le-langage-de-template-django-pour-les-auteurs-de-templates/" title="Accès à Le langage de template Django : Pour les auteurs de templates">Le langage de template Django : Pour les auteurs de templates</a></li>
  142. <li><a href="/david/biologeek/archives/20060715-comparaison-de-turbogears-et-django-deux-frameworks-web-python/" title="Accès à Comparaison de TurboGears et Django, deux frameworks web Python">Comparaison de TurboGears et Django, deux frameworks web Python</a></li>
  143. <li><a href="/david/biologeek/archives/20060617-redaction-de-votre-premiere-appli-django-partie-4-conception-d-un-formulaire-et-vues-generiques/" title="Accès à Rédaction de votre première appli Django, partie 4 : Conception d&#39;un formulaire et vues génériques">Rédaction de votre première appli Django, partie 4 : Conception d&#39;un formulaire et vues génériques</a></li>
  144. </ul>
  145. </div>
  146. </section>
  147. <section>
  148. <div id="comments">
  149. <h3>Commentaires</h3>
  150. <div class="comment" typeof="schema:UserComments">
  151. <p class="comment-meta">
  152. <span class="comment-author" property="schema:creator">kNo&#39;</span> le <span class="comment-date" property="schema:commentTime">19/06/2006</span> :
  153. </p>
  154. <div class="comment-content" property="schema:commentText">
  155. <p>Juste une remarque concernant l'utilisation d'Apache et de mod_python. Bien que le module fonctionne apparemment correctement, j'ai eu les pires ennuis en essayant de l'utiliser pour Django. Refresh de la page - bug. refresh de la page - affichage correct. refresh de la page - erreur 500. refresh de la page - traceback, et ainsi de suite, dans un ordre totalement chaotique.<br />
  156. <br />
  157. Impossible de déboguer correctement l'appli sous Apache. En utilisant le serveur fourni par Django, ça a l'air de fonctionner un peu mieux ; le soucis, c'est que ce serveur n'est absolument pas acceptable pour un environnement de production.<br />
  158. <br />
  159. J'ai depuis légèrement laissé Django de côté, et de temps en temps, je fais une recherche pour savoir si ces dysfonctionnement se retrouvent ailleurs. Las ! Y'a pas grand-monde qui utilise Django, aussi je retombe souvent sur mon propre post sur la question dans Google, sans solution.<br />
  160. <br />
  161. Quelqu'un m'éclairerait ?</p>
  162. </div>
  163. </div>
  164. <div class="comment" typeof="schema:UserComments">
  165. <p class="comment-meta">
  166. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">19/06/2006</span> :
  167. </p>
  168. <div class="comment-content" property="schema:commentText">
  169. <p>Je n'ai pas encore essayé avec mod_python, le serveur de développement marche très bien de mon côté par contre.<br />
  170. <br />
  171. Pour la production, il reste FastCGI, les explications suivantes sont assez détaillées (notamment pour les DreamHostiens ;) :<br />
  172. <a href="http://www2.jeffcroft.com/2006/may/11/django-dreamhost/" title="http://www2.jeffcroft.com/2006/may/11/django-dreamhost/" rel="nofollow">www2.jeffcroft.com/2006/m...</a><br />
  173. <a href="http://wiki.dreamhost.com/index.php/Django" title="http://wiki.dreamhost.com/index.php/Django" rel="nofollow">wiki.dreamhost.com/index....</a><br />
  174. <a href="https://simon.bofh.ms/cgi-bin/trac-django-projects.cgi/wiki/DjangoFcgi" title="https://simon.bofh.ms/cgi-bin/trac-django-projects.cgi/wiki/DjangoFcgi" rel="nofollow">simon.bofh.ms/cgi-bin/tra...</a><br />
  175. <br />
  176. C'est quand même étrange car Django a été à la base développé pour mod_python... et c'est ce qui est <a href="http://www.djangoproject.com/documentation/faq/#what-are-django-s-prerequisites "title="What are django prerequisites" rel="nofollow">recommandé dans la FAQ</a>.<br />
  177. <br />
  178. [edit] : J'ai l'impression que ton problème était lié au cache non ?
  179. </p>
  180. </div>
  181. </div>
  182. <div class="comment" typeof="schema:UserComments">
  183. <p class="comment-meta">
  184. <span class="comment-author" property="schema:creator">kNo&#39;</span> le <span class="comment-date" property="schema:commentTime">19/06/2006</span> :
  185. </p>
  186. <div class="comment-content" property="schema:commentText">
  187. <p>David: le cache, ça m'étonnerait, parce qu'une fois vidé, il devrait systématiquement renvoyer la page &quot;normale&quot; ou la page &quot;erreur&quot;, et pas 'tantôt l'une, tantôt l'autre', en fonction de l'intensité des rayons cosmiques émis par Krypton.<br />
  188. <br />
  189. Moi aussi ça me surprend ce bug lié au duo mod_python / apache et pour tout dire, c'est assez irritant de prendre un bug &quot;aléatoire&quot;. J'suis plus habitué depuis que j'ai basculé du côté Libre de la Force.<br />
  190. Ceci dit, je voulais simplement utiliser Apache à des fins d'auto-formation sur mon serveur perso / de test / en local. Si je devais héberger un site en Django, je chercherai un hébergeur compétent et professionnel.<br />
  191. <br />
  192. FastCGI, ça reste une alternative intéressante, au cas où le virus Django me reprenne... ;)<br />
  193. </p>
  194. </div>
  195. </div>
  196. <div class="comment" typeof="schema:UserComments">
  197. <p class="comment-meta">
  198. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">20/06/2006</span> :
  199. </p>
  200. <div class="comment-content" property="schema:commentText">
  201. <p>&gt; en fonction de l'intensité des rayons cosmiques émis par Krypton.<br />
  202. <br />
  203. Huhu, non mais peut-être en fonction du cache d'Apache et/ou de Django et/ou du navigateur (oui j'ai découvert que Firefox pouvait poser des problèmes des fois sur mon localhost par exemple...) ? En fait il faudrait que je teste par moi même...<br />
  204. <br />
  205. &gt; Si je devais héberger un site en Django, je chercherai un hébergeur compétent et professionnel.<br />
  206. <br />
  207. Pareil, ou alors sur une dédibox en collocation, à voir.<br />
  208. <br />
  209. &gt; FastCGI, ça reste une alternative intéressante, au cas où le virus Django me reprenne... ;)<br />
  210. <br />
  211. Friend.kNo.immune_system += Virus.Django ;)</p>
  212. </div>
  213. </div>
  214. <div class="comment" typeof="schema:UserComments">
  215. <p class="comment-meta">
  216. <span class="comment-author" property="schema:creator">Scurz</span> le <span class="comment-date" property="schema:commentTime">26/11/2006</span> :
  217. </p>
  218. <div class="comment-content" property="schema:commentText">
  219. <p>L'installation de Django s'est très bien déroulée, bravo !</p>
  220. </div>
  221. </div>
  222. <div class="comment" typeof="schema:UserComments">
  223. <p class="comment-meta">
  224. <span class="comment-author" property="schema:creator">[JO-JOJO]</span> le <span class="comment-date" property="schema:commentTime">23/05/2007</span> :
  225. </p>
  226. <div class="comment-content" property="schema:commentText">
  227. <p>Bonjour,<br />
  228. <br />
  229. Voilà alors j'ai un petit souci de base données :<br />
  230. J'ai installé Django en mode production avec python2.4, le mod-python, apache2 et pysqlite2 tous ça sur Ubuntu serveur et quand je lance mon site internet voilà l'erreur qui m'affiche :<br />
  231. <br />
  232. Exception Type: OperationalError<br />
  233. Exception Value: unsupported file format<br />
  234. Exception Location: /usr/lib/python2.4/site-packages/django/db/backends/sqlite3/base.py in execute, line 93<br />
  235. <br />
  236. Personnellement je ne comprend ce qui se passe ...<br />
  237. Pourriez vous m'aider SVP !!!<br />
  238. <br />
  239. </p>
  240. </div>
  241. </div>
  242. <div class="comment" typeof="schema:UserComments">
  243. <p class="comment-meta">
  244. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">23/05/2007</span> :
  245. </p>
  246. <div class="comment-content" property="schema:commentText">
  247. <p>Tu es sûr d'avoir installé sqlite ?</p>
  248. </div>
  249. </div>
  250. <div class="comment" typeof="schema:UserComments">
  251. <p class="comment-meta">
  252. <span class="comment-author" property="schema:creator">[JO-JOJO]</span> le <span class="comment-date" property="schema:commentTime">23/05/2007</span> :
  253. </p>
  254. <div class="comment-content" property="schema:commentText">
  255. <p>Je pense que OUI car au départ quand il n'était pas encore installé, j'avais une erreur genre :<br />
  256. no name module pyslite2 <br />
  257. <br />
  258. Et je ne pouvais pas du tout acceder au site, que là je vais sur la premiere page de mon site qui est un formulaire de log (qui n'utilise pas la base de données) et dès que je me log et que je vais faire la vérification dans la base pour acceder à la pagecd'accueil boummmm erreur ...</p>
  259. </div>
  260. </div>
  261. <div class="comment" typeof="schema:UserComments">
  262. <p class="comment-meta">
  263. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">23/05/2007</span> :
  264. </p>
  265. <div class="comment-content" property="schema:commentText">
  266. <p>pysqlite permet de se connecter à une base SQLite mais encore faut-il que SQLite soit installé :-)</p>
  267. </div>
  268. </div>
  269. <div class="comment" typeof="schema:UserComments">
  270. <p class="comment-meta">
  271. <span class="comment-author" property="schema:creator">[JO-JOJO]</span> le <span class="comment-date" property="schema:commentTime">23/05/2007</span> :
  272. </p>
  273. <div class="comment-content" property="schema:commentText">
  274. <p>J'ai installé SQlite3 et toujours la même erreur ...<br />
  275. Tampis je continu à chercher, je suis dèçu car mode developpement ca marche nikel et dès qu'on le passe sur un serveur ca devient tout de suite un peu plus la misére ... si y'a quelqu'un qui la fait sur Ubuntu j'aimerai bien avoir la methode et les différents package installé.<br />
  276. <br />
  277. Merci,<br />
  278. </p>
  279. </div>
  280. </div>
  281. <div class="comment" typeof="schema:UserComments">
  282. <p class="comment-meta">
  283. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">23/05/2007</span> :
  284. </p>
  285. <div class="comment-content" property="schema:commentText">
  286. <p>C'est le "unsupported file format" qui m'intrigue... peut-être un nom de fichier interdit ? (sinon tu peux utiliser une vraie base de données lorsque tu passes en prod : postgresql ou autre).</p>
  287. </div>
  288. </div>
  289. <div class="comment" typeof="schema:UserComments">
  290. <p class="comment-meta">
  291. <span class="comment-author" property="schema:creator">Desfrenes</span> le <span class="comment-date" property="schema:commentTime">13/05/2008</span> :
  292. </p>
  293. <div class="comment-content" property="schema:commentText">
  294. <p>J&#39;ai rencontré les mêmes problèmes en environnement apache+mod_python (tantôt une page, tantôt une erreur, tantôt une 404... ou encore interface d&#39;admin ne prenant pas en compte les modifs du model).<br />Apparemment il y une mise en cache du code (ce qui n&#39;explique pas complètement le coté aléatoire), un peu l&#39;équivalent d&#39;un APC pour PHP. En général pour moi un restart d&#39;Apache résoud le problème. C&#39;est pas acceptable de redémarrer le serveur toutes les 30 secondes en cours de développement mais après tout le serveur fournis est là pour ça.</p>
  295. </div>
  296. </div>
  297. <div class="comment" typeof="schema:UserComments">
  298. <p class="comment-meta">
  299. <span class="comment-author" property="schema:creator">cifo</span> le <span class="comment-date" property="schema:commentTime">09/08/2009</span> :
  300. </p>
  301. <div class="comment-content" property="schema:commentText">
  302. <p>Merci beaucoup! j&#39;ajoute que pour la version python 2.6, voilà le lien de téléchagement de MYSQLDB...</p>
  303. <p><a href="http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe">http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe</a></p>
  304. </div>
  305. </div>
  306. </div>
  307. </section>
  308. <footer>
  309. <nav>
  310. <p>
  311. <small>
  312. Je réponds quasiment toujours aux <a href="m&#x61;ilto:d&#x61;vid%40l&#x61;rlet&#46;fr" title="Envoyer un email">emails</a> (<a href="/david/signature/" title="Ma signature actuelle avec possibilité de chiffrement">signés</a>) et vous pouvez me rencontrer à Montréal. <span class="more-infos">N’hésitez pas à <a href="/david/log/" title="Être tenu informé des mises à jour">vous abonner</a> pour être tenu informé des publications récentes.</span>
  313. </small>
  314. </p>
  315. </nav>
  316. </footer>
  317. </div>
  318. <script src="/static/david/js/larlet-david-3ee43f.js" data-no-instant></script>
  319. <script data-no-instant>InstantClick.init()</script>
  320. </body>
  321. </html>