PythonのWebフレームワーク Flaskについて初心者向けにまとめてみた
こんにちは、DAINOTE編集部のDAIです。
Flaskはご存知でしょうか。PythonのWebフレームワーク であるFlaskについて、初学者向けにまとめてみました。
目次 (PRも含まれます)
◯Flaskとは
Flaskは、Python上で動く、マイクロウェブアプリケーションフレームワークと呼ばれています。
◯ウェブアプリケーションフレームワークとは
ウェブアプリケーションフレームワークは、プログラミング言語でアプリを作るときに、楽チンにアプリを作れるように、諸々の動作をパッケージにしたようなものです。Rubyというプログラミング言語にも、Ruby on Rails、PHPにもLalavelなどのフレームワークがあります。
◯マイクロフレームワークとは
Flaskは、ウェブアプリケーションフレームワークの中でも、マイクロフレームワークとなっています。これは、標準で提供している機能が本当に最小限になっていることに起因します。
例えば、Ruby on Railsなどのフレームワークでは、コマンド1つで簡単にログイン機能を実装することができます。データベースの設定も、コマンド1つで簡単にできるわけです。
一方で、Flaskで実装する場合、ログインの機能を一から(from scratch)作る必要があります。これが、「最低限の機能しか提供していない」と言われる所以です。
◯Flaskを利用する利点
Pythonには、FlaskとDjangoというWebフレームワークがあります。Djangoは、Ruby on Railsのような、ウェブアプリケーションフレームワークです。
Flaskを利用する利点を説明する上で、Djangoとの比較をしながら解説します。
◯Flaskのメリット① 軽い
Flaskは、マイクロフレームワークななで、非常に軽いです。これは必要最低限の機能しか持っていないので、余計な機能が動作を重くすることを防いでいます。
そのため、単機能のWebアプリケーションや、業務用の管理画面を作る際に非常に適しています。
◯Flaskのメリット②カスタマイズ性が高い
Flaskのメリットとして、カスタマイズ性が高いことがあげられます。例えば、Djangoを利用してデータベース設計をしようとすると、もともとある機能を利用して設計することになります。しかし、細かなカスタマイズには不向きです。一方でFlaskを利用する場合は、最初からテンプレートでデータベースを利用できませんが、実装次第ではかなり細かくカスタマイズ可能です。
◯Flaskのメリット③ Hello Worldまでが早い
Flaskを利用する場合、Flaskをインストールして、数行のコードを書き、ホストを指定してターミナル上で実行するだけだすぐに起動できます。
一方で、Djangoの場合は、プロジェクトファイルをターミナル上から実行したりと、諸々の初期セットアップが必要になります。
Flaskのサンプルコード
では、簡単にFlaskを利用して、HTMLを読み込んでみる方法について解説します。
まずは、インストールします。
pip install flask
ファイル構成は以下の通りです。
top-tweets
├── app.py #Flaskの実行ファイル
└── templates
└── index.html
app.pyには以下のようにコードを書きます。
# app.py
from flask import Flask, render_template
# Flask の起動
app = Flask(__name__)
# "/"にGETリクエストを送ると、index.htmlを返す
@app.route('/')
def index():
return render_template('index.html')
app.run(host="localhost")
起動すると、ローカルホストが起動します。
$ python app.py
* Running on http://localhost:5000/ (Press CTRL+C to quit)
ローカルホストのURL(http://localhost:5000/)にアクセスすると、サーバーが起動して、HTMLの内容が表示されます。
◯Flaskが利用される環境
Flaskが利用される場合、簡単なBotを作成したり、社内管理システムで利用したり、APIサーバーとして利用されることが多いようです。
企業向けの大規模なサービスでは、Djangoが使われるパターンが多いようです
Djangoを利用している企業として、Instagram、Spotify、Youtube、Bitbucket、Dropboxなどが、世界的に有名な企業でもDjangoを取り入れているようです。
◯Flaskの学習方法
Flaskで実際に、Twitterの統計解析ができるチュートリアルがあります。
Day4 #100DaysOfCode
構築できた!
twitterのAPI認証が想像より厳しかったけど、サービス内容と効果を説明する練習になったのでOK!
Flaskチュートリアル – Pythonでツイッターの分析ツールを作ってディプロイしよう!(動画つき!)-|Dai @never_be_a_pm|note(ノート) https://t.co/K4RloCdbaT— takem (@Mutosumi) September 9, 2018
ぜひこちらを試してみてください!
Flaskチュートリアル – Pythonでツイッターの分析ツールを作ってディプロイしよう!(動画つき!)-
実際にアプリを作るために必要な技術
Flaskだけ勉強していても、Webアプリができるわけではありません。
- HTML
- CSS
- JavaScript
- jQuery
等の技術も必要になってきます。Webアプリ全体について学んでみたい!って人は、こちらの記事をどうぞ!
より本格的にPythonプログラミングを学びたい人は
- 本格的にPythonプログラミングを仕事にしたい!
- サーバーサイドエンジニアとして働きたい!
という方は、Aidemy Premium Planもおすすめです!
Aidemy Premium Plan はFlaskを利用したアプリ開発の他にも、 JDLA(一般社団法人 日本ディープラーニング協会)認定プログラムとして、E資格対策コースを開講しています。
E資格とは、「ディープラーニングの理論を理解し、適切な手法を選択して実装する能力を持つ人材」であり、実際に法人研修でもこの資格を取得されようとする企業も増えてきています。
業界初の合格保証制度もありますので、E資格を取得しつつ実務レベルで使える実装能力を身に付けたい人にはおすすめです。
詳しくは無料相談会でお聞きください。
Aidemy Premium Planをみる
LINE@登録者限定で無料チュートリアルプレゼント中!
また、まずは無料で学習をpythonの学習を試してみたいという方にはDAINOTEがぴったりです。
DAINOTEは、プログラミングの基礎から応用までを網羅したプログラミング教材です。
初心者や非エンジニアの方でも、Twitter分析のWEBアプリ、LINE Bot開発、業務の自動化などをゼロから学習することができます。
- スクレイピング案件受託コース ~クラウドソーシング案件をやってみよう
- LINE Bot開発コース | 自動文字起こしができる「文字起こしくん」を作ろう
- Twitter分析Webアプリ「Top Tweets」を作ろう!
- 【業務自動化】はじめてのプログラミングで、毎日の業務を効率化してみよう!
上記のような多くのコースの中から自分にぴったりのコースをお選びいただけます。特に今回のFlaskのようなWebアプリを作成を試してみたい方には、Top Tweetsのコースがおすすめです。
LINE@に登録した方限定でチュートリアルが見れるようになっているので、ぜひ一度覗いてみてください!
関連記事:もっと学習したい方向け
【2020年最新】Pythonや機械学習を学べるプログラミングスクール厳選3つ
【2020年】プログラミングスクールで受講者がおすすめした厳選6社を一挙解説【体験談まとめ】