StreamlitとMySQLを使用したクエリ実行アプリケーションの開発記録

1. プロジェクト要件

以下の要件で、SQLクエリを実行できるWebアプリケーションの開発を行いました:

2. 開発環境

データベース接続情報:

3. プロジェクトのセットアップ

まず、プロジェクトディレクトリを作成し、必要なファイルを準備しました:

mkdir MyQueryPad001

4. 依存関係の管理

必要なパッケージを requirements.txt に記述:

streamlit
mysql-connector-python
pandas
sqlalchemy
pymysql

5. アプリケーションの実装

メインアプリケーションコード(app.py)の実装:

import streamlit as st
from sqlalchemy import create_engine
import pandas as pd

# SQLAlchemy engineの作成
def init_connection():
    return create_engine(
        "mysql+pymysql://****:************@localhost/dev_db001"
    )

# クエリを実行する関数
def run_query(query):
    engine = init_connection()
    try:
        return pd.read_sql_query(query, engine)
    except Exception as e:
        st.error(f"エラーが発生しました: {str(e)}")
        return None

# アプリケーションのメイン部分
def main():
    st.title("MyQueryPad")
    
    # クエリ入力フィールド
    query = st.text_area("SQLクエリを入力してください:", height=150)
    
    # 実行ボタン
    if st.button("クエリを実行"):
        if query:
            # クエリの実行
            results = run_query(query)
            if results is not None:
                # 結果の表示
                st.success("クエリが正常に実行されました")
                st.dataframe(results)
        else:
            st.warning("クエリを入力してください")

if __name__ == "__main__":
    main()

6. 実装のポイント

7. アプリケーションの起動

以下のコマンドでアプリケーションを起動:

cd MyQueryPad001 && streamlit run app.py

アプリケーションは自動的にブラウザで開き、以下のURLでアクセス可能:

8. 開発過程での改善点

9. まとめ

本プロジェクトでは、StreamlitとMySQLを組み合わせた簡潔で機能的なクエリ実行アプリケーションを開発しました。 主な特徴として:

これらの機能により、データベースクエリのテストや実行を容易に行うことができるツールが完成しました。