🌏

Webアプリケーションを作成・公開する(GitHub・Streamlit)

に公開

はじめに

GitHubとStreamlitを使えば、PythonでWebアプリケーションの作成・公開ができます。ここでは、GitHubとStreamlitのアカウント作成からWebアプリケーションの公開までを説明します。

以下のように、Streamlitで作成したプログラムを公開できました。
https://htaa9jenk2ofrqksmrrstn.streamlit.app/

用語説明

GitHub ウェブベースのバージョン管理プラットフォーム。「Git」というバージョン管理ツールを基盤にしたサービスで、ソースコードの保存や共有、バージョンの履歴管理、共同開発ができる
Streamlit Pythonを使って手軽にWebアプリケーションを作成できる枠組み。Pythonだけで色々なデザインや動的なデータの可視化を実現できる

前提条件

Googleアカウントは既に持っているものとします。

Githubのアカウント作成

以下のページにアクセスします。

https://github.com/

画面右上のSign upをクリックします。

メールアドレス、パスワード、ユーザ名、国・地域を入力し、Continueをクリックします。

認証コードを入力する画面が表示されるので、認証コードを入力し、Continueをクリックします

サインイン画面でメールアドレスとパスワードを入力します

サインインが成功すると、マイページが表示されます

Streamlitのアカウントを作成

Streamlit Community Cloud にアカウントを作成し、ログインをします。
下記にアクセスします。
https://streamlit.io/cloud

画面右上の「Free」を選択したあと、左側の「Deploy with Streamlit Community Cloud」を選択します。

「Continue to sign-in」をクリックします。

いくつかのサインアップ方法がありますが、今回は、Githubアカウントと連携を行います。「Continue with GitHub」をクリックします。

Streamlitの認証画面に進むので、登録したメールアドレスに送られたメールに書かれている認証コードを入力します。

アカウント作成画面になるので、必要事項を入力して「Continue」をクリックします。

アカウントが作成され、下のような画面になればログインが完了しています。

GitHubにリポジトリ(保管場所)を作成

リポジトリとは、データやファイル、プログラムコードなどを保存・管理するための「保管場所」を指します。
画面左側の「Create Repositry」をクリックします。

レポジトリの作成画面では以下の項目を入力し、「Create repository」をクリックします。

Repository name リポジトリの名前(任意)を入力して下さい。※今回は「test」とします。
Public/Private リポジトリを公開したい場合は「Public」、非公開にしたい場合は「Private」を選択します。ここでは「Public」とします。
Initialize this repository with 他の人がリポジトリへアクセスした場合の参照用として「READ ME」ファイルを設置したい場合は、チェックを入れます。

リポジトリが作成されると、以下の画面が表示されます。

リポジトリ内にPythonのプログラムファイルを作成

画面中央上付近の「+」をクリックした後に、「Create new file」をクリックします。

以下のStreamlit向けのプログラムを作成します。テストプログラムはCopilotに作ってもらいました。

copilot
Streamlitを使ったPythonプログラムを示します。このプログラムは、
ユーザー入力に基づいて計算を行うアプリです。
test.py
import streamlit as st

# Streamlitアプリの設定
st.title("シンプルな計算アプリ")
st.write("以下のフォームに数字を入力してください。")

# ユーザー入力を受け取る
number1 = st.number_input("最初の数字を入力してください:", value=0)
number2 = st.number_input("次の数字を入力してください:", value=0)

# 計算
result_add = number1 + number2
result_subtract = number1 - number2
result_multiply = number1 * number2
result_divide = None if number2 == 0 else number1 / number2

# 結果を表示
st.write(f"足し算の結果: {result_add}")
st.write(f"引き算の結果: {result_subtract}")
st.write(f"掛け算の結果: {result_multiply}")
if result_divide is None:
    st.write("割り算は0では計算できません。")
else:
    st.write(f"割り算の結果: {result_divide}")

ファイル名とプログラムを入力し、「Commit changes」をクリックします。

確認画面が表示されるので、「Commit changes」をクリックします。

test.py が作成されました。

StreamlitとGitHubの連携

画面右上の「Create app」をクリックします。

画面左の「Deploy a public app from GitHub」をクリックします。

Githubのレポジトリ名、ファイルパスを入力して「Deploy」をクリックします。

これで、Web上からStreamlitのアプリケーションが実行されます。

Webアプリケーション(Streamlit)で実行

Streamlitで実行したプログラムが以下です。
https://htaa9jenk2ofrqksmrrstn.streamlit.app/
実行前

実行結果(最初の数字:256、次の数字:16を入力した。)

Discussion