0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Streamlit入門と体重管理する #1

Last updated at Posted at 2025-04-13

はじめに

以下の記事を拝見し、そんなに少ないコード行数でwebアプリ作れるのか!
と驚き、早速試してました。
python経験も浅く、webアプリの知識も0でしたが、
思ったよりもサクサク作れてStreamlitに感謝です。
迷ったところやエラーはChatGPTさんにも聞けるし、昨今の開発コスト・学習コストの低さには驚きです。

動作環境

  • windows10
  • VScode

まず触ってみる

  • venv環境なので、activateさせる
  • streamlitをインストールし、サンプルプログラム新規作成後、ランさせる
.\venv\Scripts\activate
pip install streamlit
sample.py
import streamlit as st

st.write("hello world!!")
streamlit run sample.py
  • こんな感じに表示されました(おお~)
    • コードを変更するとSource file changed.って教えてくれます。rerunで反映できます
  • ちなみにスマホからもアクセスできました

image.png

image.png

image.png

体重管理アプリを作りたい

いまのところできたのはこんな感じ。

ディレクトリツリー
body_make_app/
├── index.py // 入口、ページ管理
├── pages/
│   ├── manage.py // メインコンテンツ、目標に合わせてカロリーと目安を表示
|   └── profile.py // プロフィール設定、身長やら体重やら入力する
└── utils/
|   └── calculator.py // 汎用的な機能やら関数
└── data
    └── profile.json // プロフィール共通設定

image.png

やりたかったことや学んだ点

  • 1回入力したデータは反映して維持してほしい、さらにページごとにデータを共有したい

  • 具体的には 身長年齢 ですね

    • ChatGPTに相談した結果
      • ページ間の共有に st.session_stateを使用する
      • データは json に書き込んで、st.session_stateに読み込んでおく
  • 公式のリファレンスが親切でやりたいことも見つけやすかったです

    • 今回は、ページ切り替え(navigation)と、データをブロックでいい感じに表示する(metric)を使ってみました

感想

プライベートでただいま増量中なんですが、毎週ごとに増量のペース配分を把握したく。
エクセルで計算していたんですが、「もーちょっとシンプルにスマートにならないかしら、、」と少々気になっていました。
こういう体重管理アプリはド定番なので、世の中に色々便利なものがあるのですが

  • 計算式をカスタマイズしたい
  • 最低限の機能でもよい

と考えていまして、自分で作成するのがユーザ的にも都合がよく、
さらに勉強的にもなってよかったという次第です。

  • コードはもうちょっと整理してから、気が向いたらアップロードします
  • グラフなど可視化したいですね、あと見た目も工夫したい
0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?