どうも、塩ラーメンです。
Pythonのフレークワーク「Streamlit」を使って、英単語学習アプリを作成しました。
人生初のアプリ開発です!自分すごい!ありがとう!
自分でカスタマイズしてみるとわからないことだらけ
「いまにゅのプログラミング塾」というYouTubeチャンネルでStreamlitの使い方を学び、いまにゅさんが動画内でご紹介されている形のアプリを、自分でカスタマイズしてみました。
テーマは、「英単語学習アプリ」です。
もっといろいろカスタマイズして見た目的にもかっこいいデザインのアプリを目指したかったのですが、やり方がわからないことが多く、最低限の機能を実装するに留まりました。少し残念な仕上がりです。
でもまぁ、初めてにしては…上出来なのかな?
上出来ですね。まぁ、初めてですし。すげーシンプルだけども。
テキストのスタイルをいじれない
セレクトボックスのテキストなどのスタイルをいじって、フォントを変えたり、サイズやカラーを変えたかったのですが、できませんでした。
そもそも出来るのかもわかりませんでした。
そんな単純なことですら難しいですね。
公式リファレンスが英語なのもきついです。
日本人が開発して日本語の説明サイトが多いと聞くRubyがやりたくなってきてしまいます…
一応色々なメソッド?を使ってみた
「streamlit.○○」で使えるものをメソッドと言うのでしょうか?ちょっとわからないですけど、streamlitで用意されている機能を一応色々使ってはみました。
まずは「st.selectbox」で学習したい英単語のカテゴリを選べるようにしました。
カテゴリは4つしかありません(笑)
ここで選択されたカテゴリを、変数に入れて、if文でその変数にどのカテゴリが入っているかによって表示されるコードが判定されるようにしました。
次に、表示されるカテゴリ別の英単語は、まず設問が表示されていて、クリックすることで答えが表示されるようにしました。
動物カテゴリは、「st.button」で、英単語をクリックすると、右カラムに答えが表示されます。ただし、別の英単語をクリックすると、今表示されている答えは消えてしまいます。一度に一つの答えしか表示されません。
これについては、session_stateというものを使えば、変数がクリアされないようにできるっぽいのですが、よくわからず、できませんでした。
他のカテゴリも、それぞれ別々の表示方法を試しました。
大したことない内容ですので、その他の説明は割愛します。
次はFlaskだ!
と、このような感じで、初めてのアプリ作成は、ものすごいしょぼいものとなりました。ただ、自分で作って、自分でデプロイできたというのが、ものすごく嬉しいです。
なにより、作っていて楽しかったというのが、良い体験だったと感じます。
次は、いまにゅさんの動画でFlaskを学びます。Flaskは、Streamlitよりも自由度が高く、Djangoより簡単なPythonのフレームワークです。ゆくゆくはフルスタック(一通りの需要に応えられる広範囲な機能を持つ)であるというDjangoを勉強したいと考えています。
最後までお読みいただき、ありがとうございました。
感想・意見・指摘などは、コメントに残していただけるとありがたいです。
ツイッターで、ブログの更新情報などお知らせしています。
【https://twitter.com/saltramen_book】
それでは、また別の記事でお会いしましょう。
コメント