| |
| <h1>db_ctrl.py</h1> |
| <div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">print_function</span> |
| <span class="kn">import</span> <span class="nn">sqlite3</span> |
| <span class="kn">import</span> <span class="nn">sys</span> |
| |
| <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span> <span class="o"><</span> <span class="mi">3</span><span class="p">:</span> |
| <span class="nb">print</span><span class="p">(</span><span class="s2">"Usage: </span><span class="si">%s</span><span class="s2"> [init|insert|list] db"</span> <span class="o">%</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> |
| <span class="k">else</span><span class="p">:</span> |
| <span class="n">conn</span> <span class="o">=</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> |
| <span class="k">with</span> <span class="n">conn</span><span class="p">:</span> |
| <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"init"</span><span class="p">:</span> |
| <span class="n">conn</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">"DROP TABLE IF EXISTS records"</span><span class="p">)</span> |
| <span class="n">conn</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">"CREATE TABLE records(id INTEGER PRIMARY KEY AUTOINCREMENT, description TEXT)"</span><span class="p">)</span> |
| <span class="n">conn</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span> |
| <span class="k">elif</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"list"</span><span class="p">:</span> |
| <span class="n">cursor</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">cursor</span><span class="p">()</span> |
| <span class="n">cursor</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">"SELECT * FROM records"</span><span class="p">)</span> |
| <span class="n">rows</span> <span class="o">=</span> <span class="n">cursor</span><span class="o">.</span><span class="n">fetchall</span><span class="p">()</span> |
| <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">rows</span><span class="p">:</span> |
| <span class="nb">print</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> |
| <span class="k">elif</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"insert"</span><span class="p">:</span> |
| <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> |
| <span class="n">l</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdin</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span> |
| <span class="k">if</span> <span class="ow">not</span> <span class="n">l</span><span class="p">:</span> <span class="k">break</span> |
| <span class="n">conn</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">"INSERT INTO records(description) VALUES (?)"</span><span class="p">,</span> <span class="p">(</span><span class="n">l</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(),))</span> |
| <span class="n">conn</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span> |
| <span class="k">else</span><span class="p">:</span> |
| <span class="nb">print</span><span class="p">(</span><span class="s2">"Unrecognised command: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> |
| </pre></div> |
| |
| <p><a href="db_ctrl.py">Download this file</a></p> |