初心者向け学習方法一覧はこちら
この記事は中規模アプリケーション開発用フレームワークのFlaskの解説記事です。
主にFlask初心者に向けた内容となっております。
必要な環境としてPython環境が必要ですので、Python環境がまだ用意できていない方はこちらの記事からPython環境を構築することをおすすめします。
Flaskとは
まず、FlaskとはPythonを使用した中規模のアプリケーション開発用フレームワークのことです。
ここでいうフレームワークというのはプログラミング言語をアプリケーションを開発するという目的に絞って再構築し、さらに使いやすくしたものを指します。
呼び方はフラスク、フラスコどちらでも良いようです。
また、Pythonでアプリケーション開発をするのであれば他にも「Django」「Tkinter」という手段もあります。
それぞれに使用するメリットがあり、一概にどれが良いという訳でもありません。
使い分けとしてはSNSなどの大規模なアプリケーションの開発であれば「Django」、簡単なWEBページ制作程度であれば「Flask」、個人的な利用に留まるのであれば「Tkinter」を使用するのがベターでしょう。
Flaskを使用するメリット
他のアプリケーション制作フレームワークと比較してFlaskを使用するメリットを2つご紹介します。
1つ目は、コーディングが容易であるため学習コストが低いということです。
Flaskには、Flask特有のコマンドがほとんどありません。
そのため、機能面だけならほぼPythonとネットワークの知識だけでアプリケーションを開発することができます。
2つ目は、Pythonのモジュールが使用できる環境であればpipコマンド一つでインストールができることです。
Pythonの代表的なフレームワークであるDjangoを環境構築するには、専用のソフトのダウンロードが必要です。
しかし、Flaskにはその必要がなく、環境構築の手間を省くことでその時間を開発に充てることができます。
開発するアプリケーションによって、適したフレームワークは異なりますが、Flaskであれば、比較的簡単に開発環境が整うため、Python初心者の方におすすめです。
次の見出しでpipを使用したインストール方法をご紹介します。
Flaskのインストール方法
それではFlaskを使用できる環境を構築しましょう!
インストール
Flaskを自分のPCにインストールするには以下のコマンドをWindows上であればコマンドプロンプト、Macであればターミナルに入力する必要があります。
pip install flask
動作確認
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
name = "Hello World"
return name
if __name__ == "__main__":
app.run(debug=True)
問題なくインストールできているかを確認するために上記のコードをコピペしてPythonファイル(.py形式)として実行してみましょう。
実行時に出てくる警告はテスト用のサーバーであるため大量のアクセスは受け入れられないという警告ですので無視しても問題ありません。
そのまま実行中の状態でブラウザを開いて以下のURLにアクセスしてください。
写真のような画面になれば正常にインストールできています!
この環境構築ができたかの確認のためにブラウザからURLを開きました。
そのため、世界中に公開されてしまったのかと不安に思われた方もいるかもしれません。
しかしこれは自分のPCをサーバーにしたローカル環境と呼ばれるもので、あなたのPCでしか表示されないものです。
世界中に公開されたわけではありませんのでご安心ください。
使用方法
それではFlaskの使用方法についてご説明します!
先程使用したコードを例にしてご説明します。
from flask import Flask
app = Flask(__name__)
1行目でWebアプリケーションを作成する上で必要なモジュールを読み込み、2行目でappという名前でインスタンスを生成しています。
インスタンスという言葉はオブジェクト指向から出てきた用語で丁寧に説明すると本筋からそれてしまうため簡潔に説明します。
クラスを使用して最低限の要素を作ったいわば土台のようなものをインスタンスといいます。
今回でしたらFlaskというクラスの設計図でappという名前のインスタンスを生成しました。
このインスタンスをカスタマイズすることで目的のアプリケーションを作っていきます。
@app.route('/')
def hello():
name = "Hello World"
return name
「@」はデコレータといって@の後ろの部分と@下の行の関数を結びつけるものです。
今回だと「app.route(’/’)」というアプリケーションの構造部分とhello関数を結びつけています。
デコレータで結びつけたことで(’/’)にアクセスしたときにhello関数が呼び出されています。
また、なにか入力に応じて出力の値を変えたいときの処理は関数に入力します。
returnの部分がブラウザに出力されます。
if __name__ == "__main__":
app.run(debug=True)
この部分はこれまで作成しカスタマイズしたインスタンスをサーバーに載せて実行する部分です。
「if __name__ == "__main__":」はプログラマーのおまじないで実行する前のコードを読み込む段階で実行されてしまうことを防ぐ役割があります。
「app.run(debug=True)」によって作成したアプリケーションをサーバーにのせて動かしています。
これが最低限のFlaskを動かす上でのコードです。
しかし、HTMLやCSSを駆使して凝った内容にしようとするとコードが非常に長くなりがちです。
その解決策としてあらかじめhtmlファイルを作成し、returnの部分に静的ファイルを指定することもできます。
実装コードは以下のようになります。
return app.send_static_file('htmlのパスを指定')
ここまででFlaskを動かせる環境とFlaskを動かすことができるようになりました!
Flaskを使用してアプリケーションを開発する上での知識すべてを解説することは難しいです。
しかし、Flaskは学習コストが低いこともあり適宜「Flask したいこと」でGoogleを検索をすれば出てきます。
あとは関数を追加していくだけで理想のアプリケーション開発ができます!
まとめ
今回は中規模アプリケーション開発用フレームワークのFlaskの解説をしました。
Flaskは学習コストが低く、pipコマンド1つで始めることができることがメリットです!
また、個人用程度のアプリケーションであればTkinterを使用するという手段もあります!
こちらも是非どうぞ!
プログラミングスクールの選び方
転職を検討中の方向け
フリーランス・副業で活躍したい方向け
教養・キャリアアップしたい方向け
給付金について詳しく知りたい方向け