人気ブログランキング
人気ブログランキング
git PR

PythonでStreamlitとGitHub使って超簡単にデータベース付きのアプリを作成しデプロイする方法を紹介

記事内に商品プロモーションを含む場合があります

目次

  1. プロジェクト概要
  2. 必要なツールと環境設定
  3. SQLiteデータベースとは
  4. Streamlitアプリの作成
  5. SQLiteデータベースの構築とデータ登録
  6. ローカル環境での動作確認
  7. GitHubへのコードのプッシュ手順と.gitignore設定
  8. GitHubリポジトリのブランチを確認する方法
  9. Streamlit Community Cloudの登録とデプロイ
  10. Streamlit Community Cloudでアプリを起動
  11. まとめ

1. この記事の概要

PythonのStreamlitとSQLiteを使用して、マンション設備管理アプリをサンプルアプリとして作成し、データをデータベースに保存します。その後、GitHubにコードをアップロードし、Streamlit Community Cloudでアプリをデプロイします。

2. 必要なツールと環境設定

  • Python: 公式サイトからインストール(https://www.python.org/downloads/)
  • Streamlit: Pythonで簡単にウェブアプリを構築できるライブラリ
  • SQLite: 軽量なデータベース管理システム
  • Git: バージョン管理ツール
  • GitHub: コードを保存・共有するリモートリポジトリ
  • Streamlit Community Cloud: Streamlitアプリをクラウドにデプロイするサービス

必要なPythonライブラリのインストール

コマンドプロンプトで必要なPythonライブラリのインストールを行います。

pip install streamlit pandas

3. SQLiteデータベースとは

SQLiteは、シンプルで軽量なデータベース管理システムで、ファイル1つでデータを管理します。インストールや設定が不要で、小規模アプリケーションに適しています。Pythonには標準で組み込まれているため、すぐに使用できます。

4. Streamlitアプリの作成

まず、マンション設備管理アプリの基本的な機能を持つStreamlitアプリを作成します。

Pythonコードのファイル名を「manshon_maintenance_tool.py」としています。

manshon_maintenance_tool.py のコード

import streamlit as st
import sqlite3
import pandas as pd
import os

# データベースファイル名
DB_FILE = 'equipment_management.db'

# データベース接続関数
def get_connection():
    conn = sqlite3.connect(DB_FILE)
    return conn

# データベースとテーブルを初期化する関数
def initialize_database():
    # データベースに接続
    conn = get_connection()
    cursor = conn.cursor()
    
    # テーブルを作成(テーブルがない場合のみ)
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS equipment (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            name TEXT NOT NULL,
            location TEXT NOT NULL,
            installation_date TEXT NOT NULL,
            maintenance_interval INTEGER NOT NULL
        )
    ''')
    
    # 変更を保存し接続を閉じる
    conn.commit()
    conn.close()

# データをデータベースに保存する関数
def save_equipment(name, location, installation_date, maintenance_interval):
    conn = get_connection()
    cursor = conn.cursor()
    
    # installation_dateを文字列に変換
    installation_date_str = installation_date.strftime("%Y-%m-%d")
    
    cursor.execute('''
        INSERT INTO equipment (name, location, installation_date, maintenance_interval)
        VALUES (?, ?, ?, ?)
    ''', (name, location, installation_date_str, maintenance_interval))
    
    conn.commit()
    conn.close()

# データを取得する関数
def get_all_equipment():
    conn = get_connection()
    df = pd.read_sql_query("SELECT * FROM equipment", conn)
    conn.close()
    return df

# アプリの起動時にデータベースを初期化
initialize_database()

# StreamlitアプリのUI
st.title("マンション設備管理アプリ")

# 設備情報の登録
st.header("新しい設備の登録")
name = st.text_input("設備名")
location = st.text_input("設置場所")
installation_date = st.date_input("設置日")
maintenance_interval = st.number_input("メンテナンス周期(月)", min_value=1)

if st.button("登録"):
    try:
        save_equipment(name, location, installation_date, maintenance_interval)
        st.success("設備が登録されました!")
    except Exception as e:
        st.error(f"設備の登録中にエラーが発生しました: {e}")

# 登録された設備を表示
st.header("登録された設備一覧")
try:
    equipment_df = get_all_equipment()
    st.dataframe(equipment_df)
except pd.io.sql.DatabaseError:
    st.error("データベースにアクセスできません。")

補足:SQLiteデータベースの構築とデータ登録

このコードでは、アプリ起動時にinitialize_database()関数でSQLiteデータベースファイルとテーブルを自動的に作成します。また、save_equipment()関数を使って設備データをデータベースに保存します。

5. ローカル環境での動作確認

ローカル環境で以下のコマンドを使ってアプリを起動し、正しく動作するか確認します。

streamlit run manshon_maintenance_tool.py

6. GitHubへのコードのプッシュ手順と.gitignore設定

① GitHubアカウントの作成とリポジトリの作成

  1. GitHubの公式サイト(https://github.com/)にアクセスします。
  2. 「Sign up」をクリックしてアカウントを作成します。必要な情報を入力してアカウント登録を完了させます。
  3. アカウント作成後、トップページ右上の「+」をクリックして「New repository」を選択します。
  4. リポジトリ名を入力し、「Create repository」をクリックします。

② ローカルリポジトリの初期化とプッシュ

  1. ターミナルまたはコマンドプロンプトを開き、プロジェクトフォルダに移動します。
  2. 以下のコマンドを実行してGitの初期化を行います。
git init
  1. プロジェクトの全ファイルをステージングし、コミットします。※”Initial commit”の部分は好きに内容を変更しても構いません。
git add .
git commit -m "Initial commit"
  1. GitHubリポジトリをリモートリポジトリとして追加し、コードをプッシュします。
git remote add origin https://github.com/your-username/your-repository.git
git push -u origin master

your-usernameyour-repository は、自分のGitHubリポジトリページのURL(https://github.com/username/repository-name)から確認できます。

③ .gitignoreファイルの設定

データベースファイルをGitHubにアップロードしないように、プロジェクトのルートディレクトリに.gitignoreファイルを作成し、以下の内容を追加します。

.gitignoreファイルの内容(ファイルの拡張子の無いファイルです)

equipment_management.db

7. GitHubリポジトリのブランチを確認する方法

リモートリポジトリがmainブランチを使用しているかmasterブランチを使用しているかを確認するには、次の方法があります。

  1. GitHubウェブサイトで確認:
    • リポジトリページ左上のブランチ名が表示されるドロップダウンメニューを確認します。
  2. ターミナルで確認:
    • ローカルリポジトリで以下のコマンドを実行します。
git branch

8. Streamlit Community Cloudの登録とデプロイ

① Streamlit Community Cloudのアカウント作成

  1. Streamlit Community Cloud にアクセスします。
  2. 「Sign up」をクリックし、GitHubアカウントでログインしてアカウントを作成します。

② アプリのデプロイ

  1. ログイン後、Streamlit Community Cloudのダッシュボードに移動します。
  2. 「New app」ボタンをクリックし、先ほど作成したGitHubリポジトリを選択します。
  3. ブランチとアプリのPythonファイル(例: manshon_maintenance_tool.py)を指定し、「Deploy」をクリックします。

9. Streamlit Community Cloudでアプリを起動

Streamlit Community Cloudを使用することで、作成したアプリをクラウド上で簡単に公開・起動できます。以下の手順に従って進めてください。

① Streamlit Community Cloudへのアクセスとログイン

  1. Streamlit Community Cloud にアクセスします。
  2. 右上の「Sign up」または「Sign in」をクリックし、GitHubアカウントでログインします。初めての場合は、GitHubとの連携を許可する必要があります。※自動で連携するか聞かれますので承認を行ってください。

② 新しいアプリをデプロイする

  1. ログイン後、Streamlit Community Cloudのダッシュボード画面に移動します。
  2. New app」ボタンをクリックします。

③ GitHubリポジトリを選択

  1. 「Select a repository」で、デプロイしたいアプリケーションのGitHubリポジトリを選択します。GitHubにリポジトリをプッシュしている場合、そのリポジトリが一覧に表示されるはずです。
  2. 「Branch」で、デプロイするブランチ(通常はmainまたはmaster)を選択します。

④ アプリケーションのPythonファイルを指定

  • 「Main file」の欄に、アプリケーションを起動するPythonファイル名を入力します。例えば、今回の場合はmanshon_maintenance_tool.pyを指定します。

⑤ デプロイを開始

  1. すべての項目を入力したら、「Deploy」ボタンをクリックします。
  2. デプロイが開始されると、Streamlit Community Cloudがアプリケーションをセットアップします。この過程で必要なPythonパッケージがインストールされ、アプリが起動されます。

⑥ アプリの起動確認とURLの共有

  • デプロイが成功すると、Streamlit Community CloudからアプリのURLが発行されます。このURLをクリックすると、Webブラウザ上でアプリが起動していることを確認できます。
  • アプリのURLは他のユーザーと共有することができ、誰でもアクセスしてアプリケーションを使用できます。

⑦ アプリの更新方法

  • GitHubにコードをプッシュしてアプリを更新した場合、Streamlit Community Cloudの管理画面に戻り、「Rerun」ボタンをクリックすることで、変更内容が反映されます。アプリは自動的に再デプロイされます。

追加情報: Streamlit Community Cloudの管理画面

  • アプリのデプロイ状況やエラーログは、画面右下の「Manage app」ボタンをクリックすると確認できます。ここで、アプリの再起動や停止も可能です。

ヒント

  • デプロイ時にエラーが発生した場合、エラーメッセージが表示されるので、ログを確認して問題を解決してください。

10. まとめ

この流れに従って、PythonとStreamlitを使ってサンプル例(設備管理)アプリを作成し、SQLiteデータベースを用いてデータを管理する方法を紹介しました。また、GitHubとStreamlit Community Cloudを使ってクラウド上でアプリを公開する方法についても説明しました。手順に従えば、Python初心者でも簡単にアプリを作成し、デプロイできます。

これで、アプリの開発からクラウドデプロイまでの流れが一通り完了しました。

ABOUT ME
den
完全独学でWEBデザインを無謀にも挑戦している中年男。 工場勤務の会社員で3児の父。 チャレンジを忘れず、妻に怒られても心はおれず。 有益な情報を発信し、これを見ている人の為になればと思っています。
関連記事一覧