Pythonで簡単なwebアプリを作ってみたい!
・Pythonを基本的な構文は学んだけれど、次に何をすればいいかわからない方
・webアプリを作ってみたい方。streamlit
を使ってみたい方
・タイマーが欲しい人
目次
初学者におすすめ!Pythonで作ってみよう
「Pythonでできることを調べてみても、AIやアプリ開発など難しそうなのばかりでハードルが高そう・・・」
「そもそも何ができるんだろう・・・」
プログラミング学習が話題になっいるから、おすすめプロラミング言語「Python」だと紹介されたのでとりあえず基礎構文を勉強してみたけど、次に何をすればいいかわからないという方も多いのではないでしょうか。
そこで、何をしたらいいか困っている方にオススメは
- ゴミ回収の日を教えてくれる
- 明日の天気を教えてくれる
- お気に入りのHPが更新されたか教えてくれる
- ルンバがアプリで設定したタイマーで掃除を初めて、完了したか教えてくれる
など、自分があったら便利だなと思うものを作ることで、Pythonへの理解を深めていくことをおすすめします!
Streamlitでタイマーアプリを作ってみよう
ここ数年、Pythonは様々な分野で利用されています。その中でも、Webアプリケーションの開発に注目が集まっています。今回はPythonのWebアプリケーションフレームワークであるStreamlitを使用して、タイマーアプリを作成する方法を解説します。
今回作るタイマーアプリについて
今回作成するタイマーアプリはこんな感じ。ウェブブラウザ上で動作し、タイマーの秒数を指定し、スタートボタンを押すとタイマーは動き出すごく簡単なアプリを想定しています。
streamlitとは?
Streamlitとは、Pythonで簡単にウェブアプリケーションを作成することができるフレームワークです。Pythonのコードを書くだけで、Webアプリケーションを作成することができ、シンプルで直感的なAPI、リアルタイムなコードの更新、高速で自動的にレイアウトを調整することができることなどが特徴です。Python初学者のwebアプリ開発をしたことがない方でも直感的でわかりやすく、学習コストも低く簡単にインタラクティブなwebアプリのをつくることができます。
事前にstreamlit
をインストールしておきましょう。
pip install streamlit
stremalitを使ったタイマーアプリプログラムの解説
streamlitを使用してタイマーを表示するシンプルなwebアプリを解説していきます。
今回のプログラムはこちら。
import streamlit as st
import time
# アプリのタイトルを定義します
st.title("タイマーアプリ")
# カウントダウン時間を設定する
countdown_time = st.number_input("カウントダウン時間を設定してください(秒)", min_value=0, max_value=None, value=10)
# カウントダウンの開始するボタンを設定
is_start = st.button('タイマースタート')
# カウントダウンボタンが押されたらカウントダウンする
if is_start:
# カウントダウンの開始時間を取得する
start_time = time.time()
while time.time() - start_time < countdown_time:
# 残り時間を表示する
remaining_time = countdown_time - (time.time() - start_time)
st.write("残り時間:", round(remaining_time), "秒")
# 1秒待機する
time.sleep(1)
# カウントダウン終了後にメッセージを表示する
st.write("カウントダウン終了!")
このアプリケーションでは、streamlit
ライブラリを使用してタイマーアプリを作成しています。st.title
関数を使用して、アプリのタイトルを設定しています。次に、ユーザーがカウントダウンする時間を設定できるように、st.number_input
関数を使用して数値入力フィールドを作成しています。
st.button
でタイマーをスタートするボタンを設定します。is_start
はボタンが押されるとTrueが格納されいます。ここではボタンが押されるまで処理が一旦止まります
その後、タイマースタートボタンが押されると、if文なの処理が実行されます。if文内では、time
モジュールを使用して、現在時刻とカウントダウンの開始時間を取得し、while
ループを使用してカウントダウンを行っています。while
ループの中では、st.write
関数を使用して、残り時間を表示し、time.sleep
関数を使用して1秒待機しています。
カウントダウンが終了すると、st.write
関数を使用してメッセージを表示します。
上記のコードを実行すると、ストリームリットアプリが起動し、タイマーアプリが表示されます。ユーザーはカウントダウン時間を設定し、アプリがカウントダウンを実行します。
ストリームリットアプリは下記のコマンドで起動することができます。
streamlit run timer.py
ここで、カレントデイレクトリをプログラムが格納されているフォルダとし、実行してください。アプリのプログラム名をここではtimer.pyとしています。
以上、streamlitでタイマーアプリを作るプログラムの解説でした。数行のコードで簡単なwebアプリが作れてしまうのでは驚きですよね。streamlitを使えばwebアプリのプロトタイプとしてすごく簡単に作り出すことができますので皆様も色々作ってみてはいかがでしょうか?今後も、streamlitの様々なサンプルアプリを別途解説を予定しておりますのでよろしくお願いします。
可能性は無限大