初めまして。現役エンジニアとして大阪のシステム会社に3年ほど勤めているニシ_CWと申します。プログラマー歴は4年目となります。
今回の記事は初心者向けにPythonのWebフレームワークであるFlaskについて解説する記事です。初学者にもわかるようにできるだけ簡単に記載していくので是非参考にしていただければ幸いです。
本記事でわかること
- Flaskでできること
- FlaskとDjangoとの違い
- Flaskの将来性
- Flaskの使い方
- Flaskを学ぶ
- Flaskの学習法
目次
Flaskとは?
FlaskとはPythonのWebアプリを作製する用のフレームワークの一つです。初学者でも簡単にWebアプリケーションが作製できるようになっています。PythonでWebアプリ開発を行う場合は、Djangoと共によく使われるフレームワークの一つです。
歴史としては、2010年4月にアーミン・ロナッチャーという方が開発しました。「エイプリールフールのジョークで作ったのだが、いつの間にか有名にそして本格的になってしまった」とアーミン本人が語っているというユニークなフレームワークです。
Flaskを使ってできること
Flaskを使ってできることはざっくりとまとめると下記です。
- ページルーティング
- リクエスト処理
ページルーティングはURLによってどのページを表示するを制御します。静的なページの場合はこの処理だけで、表示するためのHTMLを選別して、画面を表示します。次に、リクエスト処理はリクエストによってどの処理を行うかを選別し、実際に処理を行います。
この2つの機能があればほぼ全てのWebアプリ開発ができます。
Djangoとの違いは
FlaskはDjangoと比較するとかなり軽量で、処理が早いです。
DjangoにあってFlaskにない機能としてよく挙げられるのが「ユーザ認証」と「管理画面」ではないでしょうか?
この2つがDjangoでは最初から機能として提供されています。しかし、Flaskでこれを実装しようとすると拡張機能として自身で作製する必要があります。そのため管理画面ではDjangoを用いて、それ以外の中身をFlaskで作成しているWebアプリも存在します。
画面が1画面しかないアプリや、RestAPIのような画面のないAPIを作製する場合はFlaskを採用した方が圧倒的に開発スピードも早く、ファイル管理も行いやすいのでFlaskを採用するべきです。逆に画面数が多く、複雑なデータベース操作や先ほど紹介した「ユーザ認証」と「管理画面」などが必要なアプリではDjangoでを採用するべきです。
Flaskの将来性
Flaskの将来性はどうでしょうか?
エンジニアの質問サイトとして有名な「Stack Overflow」でもFlaskの質問数は年々増加しています。また、有名どころでいうとNetflixなど大手企業のアプリの開発フレームワークにFlaskは採用されている実績もあります。そのため、簡単に廃れるということは考えづらいです。
FlaskはPythonのフレームワークという点も大きいです。Pythonは機械学習で最近よく使用されている言語です。機械学習したAIモデルを組み込んだアプリやAPIなどを公開したい場合、Djangoで大掛かりなアプリに組み込む前に簡単に作製できるFlaskでデモを行うことも可能となっております。
こういった要素からも、Flaskの将来はかなり安定し、今後も開発が進んでいくフレームワークと考えられます。Pythonを扱う上で確実に押さえておきたいフレームワークと言えるでしょう。
Flaskの使い方
Flaskの使い方は非常に簡単です。
Pythonはすでに端末にインストールされている前提で話を進めていきます。まずは、PythonにFlaskをインストールします。
pip instal flask
これでFlaskを利用できるようになっているので、実際に動くコードを貼っておきます。
from flask import Flask
app = Flask(__name__)
@app.route(‘/’)
def index():
return ‘Hello World’
if __name__ == ‘__main__’:
app.debug = True
app.run(host=‘0.0.0.0’, port=8000)
上記のファイルを適当な名前で保存し、実行します。
実行コマンドは下記です。
python 〇〇.py
アプリはローカルサーバで起動するので、下記URLでページにアクセスすると動きを確認できます。
http://localhost:8000/
コードを少し解説します。
まず、ブラウザでURLにアクセスした際に、「@app.route(‘/’)」のルーティングとなっているため、「index()」の関数が動きます。
この「index()」では「Hello World」という文字列を返す関数なのでブラウザで開いたページに「Hello World」が出力されます。
コードの最下部にあるif文はFlaskプロジェクトのおまじないのようなものですが、if文の中身でポート等を指定することができます。
Flaskを学ぶ
Flaskを本格的に使っていく上で学習を行う必要があります。
フレームワークを新しく学習するにあたってフレームワークの難易度や学習方法は気になるポイントですよね。
順番に解説していきます。
Flaskの学習難易度
まず初めに、Flaskの学習難易度ですが、先述したDjangoと比較するとFlaskの方が学習コストは低いです。他言語のPHPでWeb開発を行う際によく利用される「Laravel」やRubyの「Ruby on rails」と比較しても簡単と言えます。
理由はやはりFlaskの軽量さです。必要最小限の機能のみを備えているため、できることが明白で、ソースコード量もかなり少なくなります。そういった理由から、少ないコードで、アプリ開発を完結させることができ、開発の管理も楽になります。
また、FlaskがPythonで動く点も学習難易度が低い要因の一つです。Python自体が他のプログラミング言語と比較しても学習難易度が低いです。そのため、FlaskはWebアプリ開発初心者におすすめのフレームワークと言えるでしょう。
Flaskの勉強法
Flaskに限らずフレームワークを勉強する上で方法は下記3通りです。
- プログラミングスクールでFlaskの学習コースを受講する
- Flaskを業務で扱っている知り合いや先輩エンジニアから直接習う
- ネットのFlask記事やFlask学習用のYoutubeなどで独学で学ぶ
私が最もおすすめするFlaskの学習方法はプログラミングスクールで学ぶことです。
理由はプログラミングスクールでは、プログラミングを教えることを仕事としている講師・現役エンジニアからスキルを学べるため、教え方がうまく、身につきやすい順に学習を進めてくれるからです。
エンジニアから直接学ぶ場合は、そのエンジニアの悪い癖がそのまま身についてしまう危険性があります。また、独学で学ぶことも可能ですが、一般的でない形でスキルを習得してしまう可能性や見当違いのままスキルを身につけたつもりになってしまうことがあり、実際に業務に入っていくと苦労する点が多いです。
実際、私は独学でプログラミングを学び業務についたのですが、開発スピードが上がらず、結局プログラミングスクールに入り直すという過去がございます。時間短縮のためにもプログラミングスクールで学ぶことをおすすめします。
おすすめのプログラミングスクールをご紹介しておきます。興味あれば是非参考にしてみてください。
Flask/Pythonが学べるプログラミングスクール
Aidemy(アイデミー)
- 成長市場のAI人材を未経験から3ヶ月で目指せる!
- 専属のメンターが徹底的にコーチング!
- 初心者から研究者にまで対応した優良コンテンツ!
Aidemy(アイデミー)は、3カ月でAI人材になることを目的としているプログラミングスクールです。オンラインに特化しており、時間や場所にとらわれることなく勉強することができます。また、厚生労働省が指定する教育訓練給付制度を利用できる可能性があります。そのため、基準を満たせば、給付金をもらうことができ、割安で受講が可能です。
講師とマンツーマンで学習できるため、未経験の方でも充分にスキルを身に付けることができます。
コースには「AIアプリ開発講座」「データ分析講座」「自然言語処理講座」「AI マーケティング講座」の主に4つがあり、自分の目的に合わせてコースを選ぶことが重要です。また、Aidemyには「選び放題システム」が用意されており、人それぞれに合わせて講座をカスタマイズできるのも特徴です。
Aidemy Premium Planでは、Pythonのプログラミング言語を用いて、実務に役立つ本格的なスキルを身に付けることができます。そのため、Pythonを学んでエンジニアとして活躍したい方に、Aidemyはおすすめです。
Aidemyではオンラインによる個別相談が利用できるため、興味がある方はぜひ活用してみましょう。
3ヶ月でAIエンジニアへ!Python特化型AIプログラミングスクール
Aidemy(アイデミー)
Python特化型AIプログラミングスクール。未経験からAI領域の転職を目指すならここ
キカガク
- AI/データサイエンスの実践的スキルを6ヶ月で習得!
- 担任制による徹底指導でオリジナルの成果物を制作!
- 国の給付金制度を活用すれば受講料の最大70%がOFFに!
キカガクは、AI・機械学習領域の学習に特化しており、JDLA(日本ディープラーニング協会)のE資格認定講座を受講することで、受験可能なレベルのスキルを身につけることができるのが特徴です。
また、第四次産業革命スキル習得講座にも認定されているので、給付金制度を利用すれば受講料の70%を補助してもらえます。通常792,000円(税込)の受講料を237,600円(税込)まで下げることができるため、これまでプログラミングスクールへの受講を”高額な受講料”で諦めていた方には嬉しいポイントといえますね。
キカガクの学習スタイルはオンラインによるハンズオン形式の動画学習。Pythonや数学の基礎から環境構築、そしてAIを搭載したWebアプリケーション開発までを『最短最速』で学べる環境が整っています。
なお、大手転職エージェント『doda
SAMURAI ENGINEER(侍エンジニア)
- 一人ひとりに合わせたフルオーダーメイドカリキュラム
- 現役エンジニアが専属でマンツーマン指導。質問し放題
- 未経験からのエンジニア転職を完全無料で徹底サポート
SAMURAI ENGINEER(侍エンジニア)
最大の特徴は、現役エンジニアによる専属マンツーマンレッスンと完全オーダーメイドカリキュラムによる受講生一人ひとりに合わせた学習が受けられること。目標から逆算したスケジュールのもと、最適なプログラミングスキルを身につけることで『最短』での転職成功を目指すことができる環境が整ったスクールです。
もし学習の途中でわからなくなったりエラーが出ても心配要りません。専属の講師にはチャットでいつでも相談・質問できますし、受講生限定のQ&Aサイトでも質問をすることができます。加えてプロのコーチによるモチベーション維持や時間管理などもしっかりサポートしてもらえる充実ぶりです。
このような徹底したサポートもあり、SAMURAI ENGINEER(侍エンジニア)
好きな場所から(オンライン)、マンツーマン&オリジナルカリキュラムで納得感を持ったエンジニア転職をしたい方は、まずは無料カウンセリングに登録して色々と質問してみる
最短1ヶ月!オーダーメイドカリキュラムでプロのエンジニアへ!
SAMURAI ENGINEER(侍エンジニア)
完全オーダメイドのカリキュラムをマンツーマン指導で学習できます。転職やフリーランス転向への支援が手厚いです
まとめ
今回の記事は以上です。Flaskについてできるだけ詳細に記載したつもりです。
最後まで読んでいただきありがとうございます。
本記事でわかったこと
- Flaskでできること
- FlaskとDjangoとの違い
- Flaskの将来性
- Flaskの使い方
- Flaskを学ぶ
- Flaskの学習法