Pythonで簡易的なwebアプリケーションを開発するまでに、勉強したことを整理しました。
ちなみに、実際に作成したアプリは、以下のサイトになります。
https://www.isenthalpiccalc.com/
勉強のPoint!
- pythonの基本構文
- pythonの標準ライブラリ
- Webアプリケーションの基本構造(Flask or Django)
- フロントエンド(html,css,Javascript)
- クラウドサーバーへデプロイ(heroku,EC2)
前提条件
勉強を始める前に以下が念頭にあると勉強しやすいと思います。
- 作りたいコンテンツのイメージを持つ
- 6~7割理解できたら、OK
作りたいコンテンツのイメージを持つ
理由としては、『勉強する範囲を狭めることができる』。 これが非常に大きいです。
必要ない、使う頻度が少ないことは、別に後回しで全く問題ありません。
作りたいコンテンツのイメージがあれば、勉強すべきことの取捨選択が比較的しやすいです。
6~7割理解できたら、OK
プログラミングは、細かい話まで始めるとキリがないです。
今理解できなくても、他の勉強したらあっさり理解できたりすることもあります。
変に根を詰めず、6~7割理解できたら、次に行きましょう!
基礎構文
以下のような基本的な構文について学びます。
・四則演算
・for文、if文
・文字型
・listとdict
・関数型
これくらいは、ネットに記事が溢れているので、ネットだけで十分勉強できます。
私は、以下のサイトが使いやすかったです。
1.Progate
iPadや携帯で気軽に勉強できることが魅力です。
ただし、コード書いてる感がないこと、自分のコンテンツとして何も残らないことがデメリットです
基本的なことがまとまっているので、コードを書きながら、順繰りにこなしていくのが良いです。
入門編と基礎編+関数くらいまでこなせば、一旦OKです。
標準ライブラリ
よく使う標準ライブラリとして、以下があります。
これらの使い方を勉強します。
・pandas
・matlplotlib
・Numpy
・datetime
・math
目的にもよりますが、データ絡みでは、『Pandas』は必須です。
Pandasができることとしては、以下の通りです。
- csv,excelの読み込み、書き出し
- データ処理、編集
- データ分析
ここまで来ると、会社の実務で使えるようになってきます。
実際、私も会社のcsvファイルを例にPandasの勉強していました。
『matlplotlib』も使えれば、グラフ化もできるのでエクセル業務がなくなります。
webアプリケーションの基本
構造と必要なことを理解するので、ざっくりアプリのことを知ります
pythonの場合、streamlitというpythonだけで書けるチートみたいなフレームワークもあります。
ただし、ある程度ちゃんとしたアプリにしたいなら、Flaskからの勉強がオススメです。
抑えるべきポイントしては、以下の通りです。
- 開発環境の構築
- 構造の理解(MTCとMTV)
- ルーティング
- Template
- (Model)
- (Form)
- データベース
ただし、フロントエンドの技術が必要となります。
なぜ、必要なのか理解するにもTemplateくらいまで学ぶと良いです。
教材としては、『Udemy』 をオススメします。
有料な分、【良質なコンテンツが揃っていること】、【体系的に学べること】ことがメリットです。
Flaskなら、以下のコンテンツがおすすめです
Python+FlaskでのWebアプリケーション開発講座!!~0からFlaskをマスターしてSNSを作成する~Flaskを用いてPythonの本格ウェブアプリを作成しよう!!html,css,javascript の基本
webアプリケーションを作る上で最低限のフロントサイドの技術は必要となります。
ただし、htmlのテンプレートやbootstrapなどのフロントサイドフレームワークを使いこなせれば、ほぼコピペだけでも作成可能です。
必要なことは、以下の通り。
- htmlの基本(テンプレートを解釈できるくらい)
- cssの基本 + bootstrapなどのフレームワークの使い方
- Javascript(必要に応じた分だけ)
これだけでも、それっぽくアレンジはできます。
クラウドサーバーへの取り扱いとデプロイ
pythonで作成したwebアプリケーションを公開するためには、みんながアクセスできるサーバー上でアプリケーションを動かす必要があります。
そこで、有名なのが『Heroku』や『AWS EC2』です。
これらに作成したwebアプリケーションをデプロイすることで、webアプリケーションを構築できます。
(2023年1月追記)
『Heroku』が有料化したので、『Render』に切り替えました。
以下の記事に色々書いてあるので、こんなことやるのかーとイメージする参考までに。
まとめ
webアプリケーションを作るには、幅広い勉強が必要なので一気に勉強するのは難しいです。
取捨選択しつつ、時間をかけて勉強してみてくだい。