DESIGNMAP

  1. TOP
  2. 公開講座
  3. ゼロから始めるPython入門
  4. TodoリストWebアプリをつくってみよう(1)ー ゼロから始めるPython入門【Vol.19】

TodoリストWebアプリをつくってみよう(1)ー ゼロから始めるPython入門【Vol.19】

これから何度かにわけて、Webアプリケーションの定番であるTodoリストをPythonでつくっていきます。
実践的なアプリ製作を通して、いままで学んだ文法の復習をしましょう。

仕様はシンプルです。Webブラウザでタスクを書き込むと、データベースに保存され、Webブラウザに一覧表示されます。「済んだ」ボタンを押すと一覧から消えます。

Webアプリケーションとは

Webアプリケーションとは、Webブラウザを使って、データを書き込んだり、コミュニケーションをしたりするアプリを指します。身近な例ですと、ショッピングサイト、ブログ、SNS、予約サイトが挙げられます。

Todoリストはシンプルな仕様ですが、作るにはいろいろな技術が必要になってきます。この技術の複合性がWebアプリケーションの難しいところです。

今回のシンプルなTodoリストでも

  • データベースサーバー
  • SQL
  • HTML
  • Webサーバー
  • HTTP
  • Python

が必要です。Pyhtonの知識だけでなく、総合的な知識が問われます。ただ技術はひとつひとつ完全に理解する必要はありません。出来る範囲で、実際につくることが大事です。今回のチュートリアルに沿って、まずはWebアプリケーションを体験してください。

今回はデータを保存するためのデータベースをつくっていきます。

Windowsはコマンドプロンプト、Macはターミナルを起動します。

現在位置をcdコマンドで「テキストエディタで書いたコードをコマンドラインから実行する ー ゼロから始めるPython入門【Vol.3】」で作った「python-study」フォルダに移します。具体的なcdコマンドでの移動の仕方は、Vol.3の記事を御覧ください。

Windowsは

cd

と入力して[enter]キーをおします。

C:¥Users¥ユーザー名¥Documents¥python-study>

と現在位置が表示されていることを確認します。

Macは

pwd

と入力して[enter]キーをおし、現在位置の「/Users/ユーザー名/Documents/python-study」が表示されていることを確認します。

SQLiteに接続してテーブルを作成する

では実行対話モードでデータベースをつくっていきます。データベースはSQLiteを使っていきます。SQLiteはPythonの標準ライブラリとして実装されているので、インストールなしで使用できます。

Windowsはコマンドプロンプトに「python」、Macはターミナルに「python3」と入力して[Enter]キーをおします。
対話実行モードに切り替わります。

>>> import sqlite3

と入力して[enter]キーをおします。これでSQliteが使えるようになります。

以下の3行のコードを入力していきます。1行書いたら[enter]キーをおしてください。

>>> conn = sqlite3.connect('todolist.db')
>>> curs = conn.cursor()
>>> curs.execute('CREATE TABLE tasks (id INTEGER PRIMARY KEY AUTOINCREMENT , name TEXT)')

データベースに接続して、データを入れるテーブルをつくっています。テーブルは、idとnameというカラムをつくっています。カラムは列の名前です。idはINTEGERで整数型、nameはTEXTでテキスト型です。このデータ型はSQLiteで決められています。

idはPRIMARY KEYを指定しています。これはidの値が重複しないようにするためです。このidの値がTodoリストでタスクを削除するときに必要になります。

idはAUTOINCREMENTで値が自動で入るように設定しています。

CREATE TABLE tasks (id INT PRIMARY KEY AUTOINCREMENT, name TEXT)の部分はSQL文と呼ばれ、データベースを操作する言語です。SQL文は大文字、小文字を区別しないのですが、コードを見やすくするためにSQLの予約語を大文字にしています。

ここで「python-study」フォルダを確認すると、「todolist.db」というファイルが生成されていることがわかります。このファイルがデータベースの本体です。

今度はテーブルにデータを入れていきます。

スポンサーリンク

テーブルにデータを挿入する

>>> curs.execute('INSERT INTO tasks(name) VALUES ("ノートを買いにいく")')
<sqlite3.Cursor object at 0x1021be340>
>>> curs.execute('INSERT INTO tasks(name) VALUES ("切手を買いにいく")')
<sqlite3.Cursor object at 0x1021be340>
>>> curs.execute('INSERT INTO tasks(name) VALUES ("洋服を買いにいく")')
<sqlite3.Cursor object at 0x1021be340>

idカラムはPRIMARY KEYを指定することで、自動でだぶらない整数が挿入されるので、nameカラムだけをいれています。

INSERT INTO tasks(name) VALUES ("ノートを買いにいく")の部分はSQL文です。
INSERT文でテーブルにデータがはいります。

次に

>>> conn.commit()

と入力します。これで実際にテーブルにデータが入ります。これを忘れてしまうと、INSERT文が取消されてしまいます。トランザクションというデータベースの重要な仕組みなのですが、解説は割愛します。

テーブルのデータを表示してみよう

ではテーブルに入ったデータをPyhtonから表示させてみましょう。

>>> quit()

と入力していったん実行対話モードは終了します。

Atomを起動します。[ファイル]メニュー→[新規ファイル]をクリックします。[ファイル]メニュー→[保存]をクリックします。新規ファイルを生成以下のコード書いて、「python-study」フォルダ内に、下記のコードを書いて「db1.py」というファイル名で保存します。

import sqlite3

conn = sqlite3.connect('todolist.db')
curs = conn.cursor()

curs.execute('SELECT * FROM tasks')
rows = curs.fetchall()

print(rows)

Windowsはコマンドプロンプト、Macはターミナルから実行すると、

[(1, 'ノートを買いにいく'), (2, '切手を買いにいく'), (3, '洋服を買いにいく')]

テーブルのデータがタプルを内包するリストで取得できていることがわかります。

関連記事:
タプル ー ゼロから始めるPython入門【Vol.11】
リスト ー ゼロから始めるPython入門【Vol.6】

forループで表示させてみましょう。

import sqlite3

conn = sqlite3.connect('todolist.db')
curs = conn.cursor()

curs.execute('SELECT * FROM tasks')
rows = curs.fetchall()

for id, name in rows:
    print(id, name)

実行すると、下記のようにデータを取得できます。このあたりのデータの扱いやすさはPythonならではの鮮やかさです。

1 ノートを買いにいく
2 切手を買いにいく
3 洋服を買いにいく

関連記事:
forによる繰り返し処理 ー ゼロから始めるPython入門【Vol.7】

今回はここまでとします。
次回はWebブラウザからPythonのコードを実行する方法をご紹介します。データベースのデータを、Webブラウザに表示させます。

スポンサーリンク

関連記事

プロフィール

DESIGNMAP
ディレクター・Web制作者
ON VISITINGを制作・運営。
お問い合わせ