リファクタリングをPythonで実践!基本手法とコード例・注意点まで
- 1.そもそもWebアプリとは
- 2.PythonがWebアプリ開発に向いている理由
- 3.実際にPythonで開発されたWebアプリ
- 4.Webアプリ開発におすすめなフレームワーク
- 5.PythonでWebアプリ開発するまでのロードマップ
- 6.PythonでのWebアプリ開発を学ぶ方法
最近人気のPythonでは、Webアプリを簡単に作成できます。この記事ではPythonでWebアプリを開発する方法から学習ロードマップまで詳しく紹介していきます。
Pythonを学習後、何をすればいいのか、これから何をやっていこうか悩んでいる方はぜひ最後までご覧ください。
1.そもそもWebアプリとは
Webアプリとは名前の通り、インターネット上で利用するアプリケーションのことです。Webサーバー上で動作し、ChromeなどのWebブラウザで操作します。
Webアプリと対比して、ダウンロードして利用するアプリをネイティブアプリと呼びます。
2.PythonがWebアプリ開発に向いている理由
PythonはWebアプリ開発に向いているとされています。実際、Pythonの案件でもっとも数が多いのはWebアプリ開発です。Pythonが選ばれる理由を4点挙げます。
①ライブラリが豊富
Pythonは人気言語なことからライブラリがとても豊富です。数学の計算を効率化したり、グラフ化したり、機械学習用のライブラリなど公式のライブラリがたくさんあります。
さらに有志の方が開発したライブラリも多数あり、これらを組み合わせることで効率的に開発できます。
②便利なフレームワークが多数ある
フレームワークとはアプリケーション開発する際に、土台として機能を提供してくれるソフトウェアのことです。Pythonには優良なフレームワークが多く、開発作業をさらに効率化できます。
フレームワークを利用するとログイン機能やシェア機能など一般的な機能を簡単に実装できるので、多くのWebアプリに利用されています。
③メンテナンス性が高い
Pythonは少ない行数で簡単に開発できます。開発が容易なのでメンテナンスが容易にできることになります。メンテナンスが容易なため、運用・保守や多人数での開発に向いています。
④説明資料が多い
上記3つの理由からわかる通り、Pythonはアプリ開発に向いているため、多くの方がWebアプリ開発に利用してきました。その分のナレッジが蓄積し、Web上に公開されています。
丁寧な解説記事や動画に従うだけで簡単なWebアプリを開発できるので、初心者でも挫折せずにWebアプリ開発ができます。
3.実際にPythonで開発されたWebアプリ
実際、有名なWebアプリの中にはPythonで開発されたものが多数あります。ここでは有名なアプリを抜粋して紹介します。
・YouTube
・Spotify
・Dropbox
・Evernote
4.Webアプリ開発におすすめなフレームワーク
Pythonは人気ゆえに多くのフレームワークが開発されています。ここではおすすめのフレームワークを紹介します。
フレームワーク名 | 特徴 | 適しているアプリ |
Django | ・機能が豊富 ・学習コストが高い | 多機能のアプリ |
Flask | ・人気で扱いやすい ・学習コストが比較的低い | リクエスト処理する簡易アプリ |
Bottle | ・初心者でも扱える ・人気は低め | 簡易アプリ |
streamlit | ・簡単に開発、デプロイが可能 ・コードが直観的でわかりやすい | データサイエンス領域のWebアプリ |
①Django(ジャンゴ)
Pythonフレームワークの中で最も機能を豊富にもつフレームワークです。他のフレームワークより取得難易度は高いですが、使いこなせればWebアプリ開発で必要な機能を一通り利用できます。
また、フロントエンドにJavaScriptのフレームワークを採用するなどフレキシブルに対応できるので、大規模開発の際にはそれも視野に入れて開発が行えます。
②Flask(フラスク)
Flaskはマイクロフレームワークと自称しており、Djangoと比べてシンプルなフレームワークです。
日本語に訳されたドキュメントがあり、学習コストも比較的低いです。人気のフレームワークなので紹介記事も多く、独学でも利用しやすいでしょう。
③Bottle(ボトル)
Flaskより更にコンパクトなマイクロWebフレームワークがBottleです。上記ふたつのフレームワークは多くのファイルを組み合わせてひとつのWebアプリケーションを作成します。対して、Bottleはファイルがひとつしかありません。
シンプルかつ小規模なアプリケーション開発には適任ですが、きちんとしたWebアプリを作成する場合は向きません。githubのスターを見るとFlaskの方が人気です。情報もFlaskの方が多いため、初心者でもFlaskを使った方が結果的に開発が楽になる場合があります。
④streamlit(ストリームリット)
データサイエンス領域のWebアプリを開発する場合におすすめのフレームワークです。
streamlitの特徴はなによりも手軽なことです。フレームワークを呼び出すと最短1行でWebアプリが開発できます。さらにWebUIを簡単に作成でき、ひとまず動くか確認したい場合に適しています。
実行例を呼び出すコマンドが準備されていたり、公式ドキュメントも充実していたりと、とにかく学習がしやすいので初心者にもおすすめです。デプロイが簡単なのも魅力です。
DjangoとFlaskの比較
ここまで4つのフレームワークを紹介してきましたが、前述の通り特に人気なのがDjangoとFlaskです。ここからはDjangoとFlaskの違いを紹介します。
フレームワーク名 | Django | Flask |
開発用Webサーバー | 対応 | 対応 |
テンプレートエンジン | 対応 | 対応 |
リクエスト処理 | 対応 | 対応 |
データベース管理 | 対応 | 非対応 |
管理画面 | 対応 | 非対応 |
認証機能 | 対応 | 非対応 |
フォーム | 対応 | 非対応 |
大まかな比較ですが、ご覧の通りDjangoには必要な機能が一通り揃っており、フルスタックなフレームワークとして多くのアプリ開発に使用されています。
※フルスタックとはフロントエンド(表示部分)とバックエンド(処理部分)の両方を扱えること
Flaskにも簡単な機能は大体揃っています。簡単なアプリ開発をFlaskで行ってからDjangoに挑戦してみてはいかがでしょうか。
5.PythonでWebアプリ開発するまでのロードマップ
Pythonのフレームワークを用いてWebアプリを開発するには、Pythonの知識だけでは足りません。ここからは、PythonでのWeb開発に必要な知識をロードマップとして順に紹介していきます。
①Pythonの基礎を学ぶ
PythonのフレームワークはPythonの基本文法を用いて記述します。そのためPythonの基礎文法は必須になります。
②フレームワークの使い方を学ぶ
フレームワークにも記述のルールがあるため、各フレームワークごとに決められた記述ルールや関数を学んでいく必要があります。ここの学習をすればするほど扱える関数が増え、作業効率があがっていきます。
また、一部のフレームワーク同士なら組み合わせることも可能です。DjangoとJavaScriptのVue.jsなど組み合わせてアプリケーション開発を行う場合は、フレームワークについてだけでなく、連携方法もあわせて学びましょう。
③HTML・CSSを学ぶ
HTML・CSSはWebサイトの見た目を決めている言語です。Webアプリを開発するには見た目の部分も設計する必要があります。基本的なHTML・CSSの学習を行いましょう。
学習コストが低いので、書籍や学習サイトを活用するのがおすすめです。
④JavaScriptを学ぶ
JavaScriptはHTML・CSSに動きをつける言語です。アニメーションの作成、日付の取得・表示など動的な表現をする場合に必要になるので学習しましょう。Webアプリで表現できる幅が一気に広がります。
JavaScriptにもフレームワークやライブラリが存在します。効率的にJavaScriptの開発を行いたい場合はそちらも確認してみましょう。
⑤その他、作りたいアプリに必要な技術を学ぶ
Webアプリによってはデータベースの連携などが必要になってきます。その都度必要な知識を学習していきましょう。データベースならMySQLやSQL、デプロイにはHerokuなどが挙げられます。
6.PythonでのWebアプリ開発を学ぶ方法
ここからはPythonでWebアプリ開発を学ぶ方法を紹介します。Webの普及に伴いさまざまな方法で学習できるようになりましたが、どの学習方法も一長一短なので、状況に応じて選択しましょう。
①書籍で学習する
書籍で学習する場合、環境構築や疑問点を自力で解決する必要があるため、ある程度プログラミング言語力が問われます。しかし、自身のペースで学習をできる点、コストを抑えられる点などのメリットもあります。
書籍を使った学習では自身のレベルにあった書籍を選ぶことが重要です。ここでは初心者におすすめな書籍を紹介します。
Python入門者でWebアプリやサービスを作ってみたいと思っている方に向けた書籍です。
内容が易しく、初心者でも挫折しにくい内容になっています。
書籍内にサンプルがいくつか紹介されており、指示通りに試すと簡単なサンプルが作成できます。
2.Pythonフレームワーク Flaskで学ぶWebアプリケーションのしくみとつくり方 (掌田津耶乃 著)
Webアプリの作り方だけでなく、フレームワークを使ったメリットが何かまで学べる書籍です。
フロントエンド開発でよく用いるJavaScriptのフレームワーク「Vue」やWebフレームワークの「Bootstrap」を用いた本格的なアプリケーションの作成方法まで学べます。
ページ数も346ページと多く、Webアプリ開発で使う技術を広範囲で学びたい方におすすめです。
②学習サイトを利用する
人気の「Progate」や「ドットインストール」などが有名です。無料でできるコンテンツもいくつかあるので、初期費用をかけずに挑戦したい方におすすめです。
フレームワークなど発展的な内容は有料の場合が多いので、課金をするかオンラインスクールなどに参加するか適宜選んでいきましょう。
③スクールやe-Learningサービスで学ぶ
Pythonに限らず、プログラミング学習方法で近年人気なのがオンラインスクールです。必要最低限の知識をコンパクトにまとめているプログラミングスクールがあるので、働きながらプログラミング学習を両立できるでしょう。
また、e-Learningサービスもおすすめです。自身のレベルにあった教材のみを購入することで、経済的に学べるのが魅力です。上級コースで躓いた場合も一つ下のコースなどを購入することで解決する場合があります。
また下級コースを受ける場合、同じ講師の授業を受けられるので、理解しやすいなどのメリットもあります。
④YouTubeで学ぶ
近年は学習系のYouTuberも数多く存在します。プログラミング学習も例外でなく、「Python 初心者」などで動画検索すると丁寧に作成された動画が数多くヒットします。
初期費用をかけずに学習したい方は確認してみてはいかがでしょうか。