【Python】第9章第15回:応用プロジェクトの完成例
本記事では、Pythonを使った応用プロジェクトの例として、タスク管理、データ可視化、API連携を組み合わせた実用的なアプリケーションを作成します。基礎を活かして複数の技術を統合する方法を学びます。
0. 記事の概要
この記事を読むメリット
- 実用的なPythonプロジェクトを学べる:複数の技術を活用したプロジェクト構築方法を習得できます。
- スキルの統合:データベース、API、データ可視化を組み合わせた開発スキルを磨けます。
- 実務に応用可能:学んだ内容を応用して、業務効率化や自動化に活用可能です。
この記事で学べること
- Pythonを使った応用プロジェクトの設計方法
- データベース、API連携、データ可視化技術の統合
- 実用的なアプリケーションの構築例
1. 応用プロジェクトの基本構造
1.1 プロジェクトの概要
今回作成するアプリケーションは、以下の3つの要素を統合したタスク管理ツールです。
- タスク管理:SQLiteでタスクを保存し、状態を管理
- API連携:天気情報APIを利用して、タスクに関連付けた天気データを取得
- データ可視化:matplotlibを使ってタスクの進捗をグラフ化
1.2 使用するライブラリ
以下のPythonライブラリを使用します。
- sqlite3: データベース管理
- requests: APIからのデータ取得
- matplotlib: データの可視化
2. Pythonを使った応用プロジェクトの実装例
2.1 タスクデータの管理
# 必要なライブラリをインポート
import sqlite3
# データベースを初期化
def init_db():
conn = sqlite3.connect("tasks.db")
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS tasks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
status TEXT NOT NULL,
date TEXT NOT NULL
)
""")
conn.commit()
conn.close()
# タスクを追加
def add_task(name, date):
conn = sqlite3.connect("tasks.db")
cursor = conn.cursor()
cursor.execute("INSERT INTO tasks (name, status, date) VALUES (?, ?, ?)", (name, "未完了", date))
conn.commit()
conn.close()
# 初期化
init_db()
add_task("レポート作成", "2025-01-30")
2.2 天気情報APIの利用
# 必要なライブラリをインポート
import requests
# 天気情報を取得
def get_weather(city):
API_KEY = "your_api_key" # OpenWeatherMapのAPIキー
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={API_KEY}&units=metric"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
return f"{city}の天気: {data['weather'][0]['description']}, 温度: {data['main']['temp']}°C"
else:
return "天気情報を取得できませんでした。"
# 天気情報を確認
print(get_weather("Tokyo"))
動作解説
- init_db: SQLiteデータベースを初期化し、タスクを保存するテーブルを作成。
- get_weather: OpenWeatherMap APIを使って天気情報を取得。
3. タスク進捗の可視化
3.1 matplotlibを使ったグラフ化
# matplotlibでタスク進捗を可視化
import matplotlib.pyplot as plt
def plot_progress():
tasks = {"未完了": 5, "進行中": 3, "完了": 7} # サンプルデータ
labels = tasks.keys()
sizes = tasks.values()
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.title("タスクの進捗状況")
plt.show()
# グラフを表示
plot_progress()
4. 練習問題
以下の課題に挑戦してください。
- APIで取得した天気情報をタスクに関連付けて保存してください。
- タスク進捗のデータをリアルタイムで更新できる機能を追加してください。
5. 練習問題の解答と解説
問1の解答例
# タスクに天気情報を関連付け
def add_task_with_weather(name, date, city):
weather = get_weather(city)
conn = sqlite3.connect("tasks.db")
cursor = conn.cursor()
cursor.execute("INSERT INTO tasks (name, status, date) VALUES (?, ?, ?)", (name + f" ({weather})", "未完了", date))
conn.commit()
conn.close()
6. まとめ
本記事では、Pythonを使った応用プロジェクトの完成例を解説しました。タスク管理、API連携、データ可視化を組み合わせることで、実用的なツールを作成するスキルを身につけることができました。さらなる応用で、業務に役立つツールを開発してみてください。