Flask初心者のための学習法!自作アプリのデプロイまで!【目的別】

この記事では、僕と同じような独学でPythonを学習している方向けに、便利なWEBフレームワークであるFlaskの学習方法についてまとめます。

Flaskとは、Pythonの便利なフレームワークです。
Flaskは、Djangoのようなフルスタックフレームワークとは異なる、シンプルなフレームワークです。

非常にシンプルで学習しやすい一方で、中規模のWEBサービスも運用可能なポテンシャルがあり、Flaskの案件もあるくらいです。
初心者でも使いやすく、使っていて楽しいので、僕の最も好きなフレームワークの1つです。

僕は、独学でプログラミングを学び、いくつかFlaskを使ったアプリケーションを作ってきました。
このLINEBotもFlaskを使ってます。

このように、WEBアプリだけでなく、チャットボット、データ分析など幅広いアプリケーションをつくることができるFlaskは、開発の入門として非常におすすめです。

ですが、Flaskに関しては、Railsなどと異なり、体系的にまとめられた教材が少ないのが現状です。
ネット上にはリソースは溢れているのですが、全くの初心者が一から探していくのは非常に大変だと思います。

今回は、僕が独学でFlaskを学ぶ中で実際に参考にしたサイトなどを、目的別に紹介していきます。

もくじ

  1. 環境構築
  2. Flaskを動かしてみる
  3. アプリケーションを公開する
  4. オリジナルのアプリケーションをつくる
  5. まとめ

環境構築

どんな目的でFlaskを使うにせよ、必要なのは環境構築です。
とはいえ、Flaskの環境構築は非常に簡単です。
RubyonRailsのように苦労することは一切ありません。

Flaskの環境構築は、Pythonさえ入っていればほとんど完了しているようなものなのです。
全くの初心者であっても、PythonがインストールされているPCと、Progateなどで学べる最低限の知識さえあれば、誰でも簡単にFlask開発を始められます。

もしまだPythonの知識に不安がある方は、こちらの教材がおすすめです。
実際に僕も初めに使った教材です。

詳細! Python 3 入門ノート

さて、Flaskの環境構築に関しては、下の記事などを参考にするといいです。
基本的には、pipでFlaskをインストールすれば完了です。

Flaskを始めよう

PythonとFlaskでWebサーバを立ち上げる

ちなみにこちらは以前僕が書いた記事なので、よければ参考にしてください。

初心者のためのFlaskアプリ開発① AnacondaでPythonの開発環境をつくる

さて、無事に環境構築ができたら、次はさっそくアプリケーションを動かしてみましょう。

Flaskを動かしてみる

今度は、実際にFlaskを動かすところを学んでいきます。
Flaskは、日本語化もされている公式のチュートリアルが充実しているので、基本的にはFlaskチュートリアルに沿って進めていけば、シンプルなアプリケーションをつくれるところまで到達できると思います。

とはいえ、僕のような飽き性な人間には、中々チュートリアル一本やり通すのは難しいものです。
そんな場合は、もっと簡単なHelloWorldアプリから始めるのがいいでしょう。

僕も初め、チュートリアルでいきなり挫折しました。
独学で一番大切なのは、いかに挫折しないよう勉強を続けられれる工夫をするかなので、できるだけ簡単なプログラムから組んでいくのがいいと思います。

下の記事などが参考になるのでは無いでしょうか?

【Python】フレームワークFlaskの基本をマスター

初心者のためのFlaskアプリ開発② FlaskでHelloWorldアプリをつくる
初心者のためのFlaskアプリ開発③ Flaskのテンプレートビューを使って画面に実行結果を表示させる

アプリケーションを公開する

実は、Flaskで作ったアプリケーションは、そのままでは自分のPCからしか見ることができません。
インターネット上にアプリケーションを公開するには、公開するためのサーバーを用意して、デプロイする必要があります。

アプリケーションをつくるためにはプログラミングだけ学べばいいと思ってませんでしたか?
僕もそうでした。

しかし、一本のアプリケーションを公開するためには、フロントエンド・バックエンド・サーバー・ネットワーク・セキュリティ…etcと膨大な知識が必要になります。

それを聞いてどう思いましたか?
わくわくした方、エンジニアに向いてると思います。
ぜひ一緒に学んでいきましょう!

さて、話がそれましたが、アプリケーションを公開するためにデプロイを行いましょう。

ぶっちゃけ、これがめちゃめちゃ難しいです。
入門書などにも書かれてないことが多いです。
僕は初めてのデプロイの際には、理解できないエラーが頻発して3日間以上何も進みませんでした。

あのときは本当に挫折するかと思いました笑
僕が実際にデプロイした際に使った教材を紹介しておきますが、すんなり上手くはいかないことだけは覚悟しておいてください。

もし一発で成功した方がいたら、きっと天才の部類だと思うので、ぜひ日本のIT業界を支える人材になってほしいですね。

参考教材
・Udemyの動画
プログラミング初心者でも安心、Python/Django入門講座

この動画はDjangoでの開発の教材ですが、後半にデプロイについて丁寧に解説されているのでおすすめ。

・チュートリアル
アプリを公開する

DjangoGirlsのチュートリアル

チュートリアルでも、デプロイについて書かれてます。
やや難しいので、これだけでいきなりデプロイはハードルが高かったです。
ですが非常に参考になります。

・ネットの記事
初心者のためのFlaskアプリ開発④ FlaskアプリをHerokuにデプロイ!

PythonのFlaskを初めて触ってから30分で本番環境にデプロイ+ HTTPS通信まで完成

Heroku初心者がFlaskを使った簡素なアプリケーションをデプロイするまで!

デプロイに関しては探せばいくらでも出てきます。
環境によって微妙に違う部分があり、完全にマネても上手くいかない場合があるのが辛いところですが、諦めずにチャレンジしていけばいずれ成功します。

オリジナルのアプリケーションをつくる

開発環境の構築ができて、チュートリアルなどを終えたら、あとは自分のオリジナルアプリケーションをつくりたくなるのではないかと思います。
オリジナルアプリの開発は大変ですが、とても楽しいです。

つくればつくるほどプログラミングが好きになっていくのを感じます。
ぜひチャレンジしてみてください。

おすすめはAPIを利用することです。
なぜなら、高度な機能を1人で0からつくるのは、上級者であってもとても困難だからです。

しかし、APIを使えば、初心者でもあっという間にアプリをつくれるようになります。
こちらは、僕がLINEのAPIを使って、BOTアプリを初めて作った際に書いた記事です。
Python初心者がたったの3日間でチャットボットを作った【0日目】
Python初心者がたったの3日間でチャットボットを作った【1日目】
Python初心者がたったの3日間でチャットボットを作った【2日目】
Python初心者がたったの3日間でチャットボットを作った【3日目】

TwitterAPIを使えばTwitterアカウントを操作できるアプリケーションなんかもつくれます。

Twitterで自動ふぁぼ、認証機能を実装してWEBアプリ化!

他にも、気象情報を取得できたり、株価を取得できたりと、便利なAPIがたくさんありますので、ぜひ自分のつくりたいアプリケーションに使えそうなAPIがないか探してみるといいと思います。

まとめ

いかがでしたか?
初心者が独学でプログラミングを学んでいくのはなかなか大変なことではありますが、幸いなことに今は安価で良質な教材が手に入る時代です。

ぜひ、自分だけのアプリケーション制作にチャレンジしてみてください。