<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.sorcellerieweb.net/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Sorcellerie Web - Tag - sqlite</title>
  <link>http://blog.sorcellerieweb.net/</link>
  <description>Bienvenue dans l'antre d'un sorcier du web. Ici vous seront dévoilées les formules les plus secrètes, les potions les plus goutues, les sorts les plus faramineux pour en mettre plein la vue à vos collègues nerds avec votre sorcellerie web niveau 36. Ou au moins à mettre en ligne un gif animé.</description>
  <language>fr</language>
  <pubDate>Thu, 28 Aug 2008 11:22:26 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Tester Django - modifier ses modèles</title>
    <link>http://blog.sorcellerieweb.net/post/2007/11/19/Tester-Django-modifier-ses-modeles</link>
    <guid isPermaLink="false">urn:md5:1db68f4f22cfe59c3a29c429afdb509c</guid>
    <pubDate>Mon, 19 Nov 2007 17:16:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>Artefacts</category>
        <category>django</category><category>firefox</category><category>python</category><category>sqlite</category>    
    <description>&lt;p&gt;&lt;img src=&quot;http://blog.sorcellerieweb.net/public/img/django-180.png&quot; alt=&quot;logo Django&quot; style=&quot;float: left; margin: 0 1em 1em 0;&quot; /&gt;Ce week-end, j'ai repris mes tests de
&lt;a href=&quot;http://djangoproject.com&quot; hreflang=&quot;en&quot;&gt;Django&lt;/a&gt;, un framework web
en &lt;a href=&quot;http://python.org&quot; hreflang=&quot;en&quot;&gt;Python&lt;/a&gt;. (Ou comment occuper
son week-end par temps pourri et grève des transports). Histoire de me
simplifier la vie et remettre à plus tard l'installation et la configuration de
MySQL sur mon Mac, j'ai opté pour le stockage SQLite (qui est inclus d'office).
Voici un bref compte-rendu, ainsi qu'une petite astuce pour les premiers stades
d'un développement avec Sqlite&lt;/p&gt;    &lt;p&gt;Tout naturellement, je suis parti dans la ré-implémentation incrémentale
d'un de mes projets PHP. Ce qui signifie commencer avec des modèles de données
très simples, et les enrichir au fur et à mesure. Avec Django, la définition
des modèles de données se fait par la rédaction de classes modèles, et la
création des tables de la base se fait via un utilitaire en ligne de commande :
&lt;code&gt;python manage.py syncdb&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Or cette commande ne crée que les tables n'existant pas encore et ne met pas
à jour la structure des tables existantes, ce qui fait que très vite on se
retrouve avec des tables dont la structure ne correspond plus au modèle, et une
erreur du type &lt;cite&gt;no such column&lt;/cite&gt;. J'ai cru un instant que la commande
&lt;code&gt;python manage.py flush&lt;/code&gt; vidait la base et donc supprimait les
tables, mais elle ne vide apparemment que les données et conserve la structure
des tables existantes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.sorcellerieweb.net/public/img/sqlite_manager.png&quot; alt=&quot;SQLite Manager (extenson firefox)&quot; style=&quot;float: left; margin: 0 1em 1em 0;&quot; /&gt;C'est là qu'une fois de plus, Firefox m'a
servi de couteau suisse du développement. En cherchant un utilitaire pour
inspecter le contenu de la base Sqlite, je suis tombé &lt;a href=&quot;https://addons.mozilla.org/fr/firefox/addon/5817&quot; hreflang=&quot;en&quot;&gt;SQLite
Manager&lt;/a&gt;, une extension permettant d'administrer entièrement une base Sqlite
! Du coup, ça m'a permis de supprimer la table associée à chaque fois que je
modifiais un modèle, et la recréer ensuite via &lt;code&gt;syncdb&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pour ce qui est de Django, je ne suis pas déçu. Cela faisait longtemps que
je le surveillais du coin de l'oeil, et même un peu plus puisque j'ai réalisé
une implémentation partielle de son moteur de templates en PHP (actuellement
incluse dans &lt;a href=&quot;http://blog.sorcellerieweb.net/post/2007/11/19/&quot; hreflang=&quot;en&quot;&gt;webappkit&lt;/a&gt;, mon système de paquetages
pour applis web PHP). En pratique, c'est encore mieux qu'attendu et la qualité
et la richesse de la documentation y est pour quelque chose. Ainsi bien sûr que
les qualités du language Python, qui a pas mal d'avance sur PHP a la fois en
fonctionnalités et en cohérence.&lt;/p&gt;
&lt;p&gt;Quelques liens supplémentaires :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://django-fr.org&quot; hreflang=&quot;fr&quot;&gt;Django-fr&lt;/a&gt;, proposant une
partie de la documentation en français&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.djangobook.com/&quot; hreflang=&quot;en&quot;&gt;Django Book&lt;/a&gt; un livre
en ligne (a paraitre prochainement)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.b-list.org/&quot; hreflang=&quot;en&quot;&gt;The B-list&lt;/a&gt; un blog très
riche en informations et astuces de développement.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ma.gnolia.com/people/fredbird/tags/django&quot; hreflang=&quot;en&quot;&gt;Mes signets Django sur Magnolia&lt;/a&gt; comme ça je ne recopie pas tous mes
liens ici ;)&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://blog.sorcellerieweb.net/post/2007/11/19/Tester-Django-modifier-ses-modeles#comment-form</comments>
      <wfw:comment>http://blog.sorcellerieweb.net/post/2007/11/19/Tester-Django-modifier-ses-modeles#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.sorcellerieweb.net/feed/rss2/comments/178155</wfw:commentRss>
      </item>
    
</channel>
</rss>