データベースとウェブサイトの連携

Image from Gyazo

履修者に望むこと

本講義は,データベースシステムで解説した データベースに関連する知識や技術を習得済みであることを前提としています. 特にデータベース管理システムの一つであるSQLiteと, 問い合わせ言語である SQL を中心にコンテンツは構成されていますので, データベースシステムの未履修者は,独学でこれらの技術を習得することを強く望みます.

この講義の目的は「データベースと連携したウェブサイトを構築する」ことです. この目的を達成するには,上述の知識や技術に加えて,下記の技術要素が必要となります. 複数の技術要素を組み合わせた難易度が高い講義となりますので, 毎回の予習・復習を怠らず,授業に臨んでください.

また,この授業では,作成した環境(サーバやファイルなど)を継続して利用します. このため,欠席すると,次回からの授業についていけなくなることが予想されます. 止むを得ない事情で欠席することがあると思いますが,遅れた分は自力で取り返す努力をしてください.

ウェブサイトとの連携

本講義ではデータベース管理システムのSQLiteで, テーブルの作成・更新などの操作を行います. PythonのSQLite3モジュールを利用することで, Pythonからこれらの操作を実行することが可能です.

例えば,下記のPythonのソースコードは, データベース sample.db に接続し, SQLを用いてテーブル students のレコードを取得しています. このようにPythonからデータベースを操作することで, ウェブページに表示する情報を制御します.

import sqlite3

con = sqlite3.connect('sample.db') # データベースに接続
cur = con.cursor() # カーソルを取得
cur.execute("SELECT * FROM students") # SQL文を実行
con.close() # データベースを切断

また,Pythonにはウェブサーバを実装するための http.serverモジュールがあります. このモジュールを利用することで,ApacheNginx などの専用のサーバソフトウェアを導入せずに,簡易なローカルのウェブサーバを構築することができます.

例えば,ターミナル(コマンドプロンプトなど)で, 下記のコマンドを実行することで,8000番ポートにウェブサーバが起動します.

% python -m http.server 8000

ブラウザを開きhttp://localhost:8000を入力してみましょう. 下記のようにコマンドを実行したフォルダのファイル一覧が表示されます.

Image from Gyazo

これらの機能を活用することで,データベースを連携したウェブサイトを構築します. 完成したウェブサイトのソースコードは下記URLで公開しています. 作業を進める上で参考にしてください.

naoto-github/seminar_database

最終課題の概要

本講義の第13回〜第15回は最終課題として 「データベースと連携したオリジナルのウェブサイト」を制作してもらいます. 第15回は発表も兼ねており,制作したオリジナルのウェブサイトの特徴を解説してもらいます. 最終課題では,Japan Search統計LODなどの オープンデータを活用したウェブサイトの構築を目指しましょう.

参考書籍

愛知県名古屋市にある椙山女学園大学 文化情報学部 向研究室の公式サイトです. 専門は情報科学であり,人工知能やデータベースなどの技術要素を指導しています. この公式サイトでは,授業で使用している教材を公開すると共に, ベールに包まれた女子大教員のミステリアスな日常を4コマ漫画でお伝えしていきます. サイトに関するご意見やご質問はFacebookまたはTwitterでお問い合わせください.