1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python Streamlit Webアプリ開発

Last updated at Posted at 2024-10-29

目次

1.開発方法
2.アプリ概要
3.開発時の工夫
4.ソースコード

1.開発方法

Youtubeにて、以下の動画を参考にしました。
https://youtu.be/zp-kAt1Ih5k?si=6oU4RI2CQH7IfmFO

Pythonライブラリ、Streamlitを用いて様々なコマンドを紹介しています。
この動画での解説を参考に、オリジナルでWebアプリを開発しました。

2.アプリ概要

起床時間の記録アプリです。
ボタンを押すとその時刻が記録され、日々の起床時間を表で閲覧できる仕組みです。

image.png

「起床時間を選択してください」という文字の下部に現在時刻が自動で表示され、
「記録する」ボタンを押下すると、ページ下部の表にその日の日付、時刻が記録されます。

プルダウンから月を選択することで、月ごとの記録を閲覧できます。

3.開発時の工夫

Youtubeでの学習をもとに、以下の仕組みを活用しました。
・pandas:データ解析を支援するライブラリで、CSVの読み込みやデータの記録の際に活用しています。
・DataFrame:Pandasで使用されるデータ構造で、記録されたデータを表で示すために使います。

その他のソースコードの記載の仕方や、エラー時の対処などはChatGPTを参考にしました。

4.ソースコード

import streamlit as st
import pandas as pd
from datetime import datetime

# タイトル
st.title("起床時間記録アプリ")

# 日付と時間を入力
wake_up_time = st.time_input("起床時間を選択してください:", datetime.now().time())

# 記録ボタン
if st.button("記録する"):
    # wake_up_times.csvというファイルに記録を保存する
    try:
        df = pd.read_csv("wake_up_times.csv")
    except FileNotFoundError:
        df = pd.DataFrame(columns=["Date", "Time"])

    new_record = {"Date": datetime.now().date(), "Time": wake_up_time}
    df = pd.concat([df, pd.DataFrame([new_record])], ignore_index=True)
    df.to_csv("wake_up_times.csv", index=False)  # インデックスを保存しない
    st.success("起床時間を記録しました!")

# これまでの記録を表示するセクション
st.subheader("これまでの記録")

try:
    df = pd.read_csv("wake_up_times.csv")

    # 日付をdatetime型に変換
    df['Date'] = pd.to_datetime(df['Date'])

    # 月ごとのリストを作成
    months = df['Date'].dt.strftime('%Y-%m').unique()

    # 月を選択するセレクトボックス
    selected_month = st.selectbox("月を選択してください", months)

    # 選択された月のデータをフィルタリング
    filtered_df = df[df['Date'].dt.strftime('%Y-%m') == selected_month]

    # フィルタリングされたデータを表示
    st.write(filtered_df)

except FileNotFoundError:
    st.write("まだ記録がありません")
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?