Flaskの開発サーバーを立ち上げる方法まとめ!run()とflaskコマンドの使い方
生徒
「先生、Flaskで作ったアプリを自分のパソコンで動かしたいんですけど、どうやって起動すればいいんですか?」
先生
「とても良いところに気づきましたね。Flaskには開発用のサーバーを簡単に立ち上げる方法が2つあります。app.run()というPythonコードを使う方法と、flask runというコマンドを使う方法です。」
生徒
「2つもあるんですか?どう違うのか気になります!」
先生
「それじゃあ、これから一緒にFlaskの開発サーバーの立ち上げ方を、順を追ってわかりやすく学んでいきましょう。」
1. Flask(フラスク)とは?
まず最初に、「Flask(フラスク)」がどんな役割を持つ道具なのかを、初心者の方にもわかりやすく説明していきます。FlaskはPython(パイソン)という人気のあるプログラミング言語で作られた、Webアプリケーションを作るための軽量な「フレームワーク」です。フレームワークとは、Webアプリ作りに必要な機能をあらかじめまとめて提供してくれる便利セットのようなものです。
Webアプリケーションと聞くと難しく感じるかもしれませんが、例えば「お問い合わせフォーム」「メモアプリ」「画像を表示するだけのページ」など、ブラウザで見る仕組みを持ったものはすべてWebアプリの仲間です。Flaskはこうしたアプリをとてもシンプルなコードで作れるため、初めてWeb開発に触れる人からプロのエンジニアまで幅広く使われています。
実際にFlaskがどれだけ簡単に使えるのか、数行だけのサンプルで確認してみましょう。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "はじめてのFlaskアプリが動きました!"
このように、たった数行のコードを書くことで、あなたのパソコン上に小さなWebアプリが動き始めます。Flaskが初心者に人気の理由は、「コードが短い」「覚えることが少ない」「動作を確認しながら学べる」という3つが揃っているからです。まずはFlaskがどんな道具なのかを知り、これから学ぶサーバーの起動方法につなげていきましょう。
2. Flaskアプリの基本的な構成
ここからは、「Flaskのアプリって中身はどうなっているの?」という疑問に答えるために、Flaskアプリの基本的な形を見ていきます。難しいことを一気に覚える必要はなく、まずは「1つのPythonファイルの中に、決まった書き方でコードを書けば動くんだな」とイメージできれば十分です。
Flaskを始めるためには、まずPythonが使える状態になっている必要があります。そのうえで、Flaskというライブラリをインストールして、次のようなシンプルなアプリを作ってみましょう。ファイル名は例としてapp.pyとしておきます。
from flask import Flask
# Flaskアプリ本体となるオブジェクトを作成
app = Flask(__name__)
# 「/」というURLにアクセスされたときの動きを定義
@app.route('/')
def hello():
return "こんにちは、Flask!はじめてのWebページです。"
この短いコードの中に、Flaskアプリの基本的な要素がすべて詰まっています。
from flask import Flask:FlaskでWebアプリを作るための機能を読み込んでいます。app = Flask(__name__):アプリ本体となるappオブジェクトを作成しています。Flaskでは、このappが中心となって動きます。@app.route('/'):ブラウザで「/」(トップページ)にアクセスされたときに、どの関数を動かすかを指定しています。def hello(): ...:実際に動く処理の中身です。ここで返した文字列が、そのままブラウザの画面に表示されます。
イメージとしては、「Flaskにアプリ本体(app)を用意して、『このURLに来たらこの関数を動かしてね』と約束しておく」という流れです。とてもシンプルですが、実際のWebアプリもこの考え方の延長線上にあります。
このように、Flaskアプリの基本構成は「インポート」「アプリの作成」「ルート(URL)の指定」「画面に返す内容」の4つを押さえておけばOKです。実際の起動方法(サーバーを立ち上げる方法)は、このあと紹介するapp.run()やflask runの章で、順番に確認していきましょう。
3. 方法①:run()で開発サーバーを起動する
Flaskアプリを起動する一番シンプルな方法は、Pythonのコードの最後にapp.run()を追加する方法です。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "こんにちは、Flask!"
if __name__ == '__main__':
app.run()
この状態でファイルを保存し、ターミナル(コマンドを入力する画面)で次のように実行します。
python ファイル名.py
たとえば、ファイル名がapp.pyなら、次のように入力します。
python app.py
そうすると、ターミナルに「Running on http://127.0.0.1:5000」という表示が出て、自分のパソコンでWebアプリが起動します。
この127.0.0.1というのは「自分のパソコン」を意味する特別なアドレスで、5000は「ポート番号」といって、パソコン内の通信の入り口のようなものです。
4. 方法②:flaskコマンドで開発サーバーを起動する
次に紹介するのは、flask runコマンドを使う方法です。この方法はより一般的で、本番に近い形で開発できます。
まずは、環境変数という設定をします。環境変数とは、パソコンに「今はFlaskのこのアプリを使うよ」と教えてあげるものです。
ターミナルで以下のコマンドを入力します(app.pyがアプリのファイル名だとします):
set FLASK_APP=app.py
MacやLinuxの場合は少し書き方が変わります:
export FLASK_APP=app.py
その後に、下記コマンドを入力します:
flask run
これで、同じように「http://127.0.0.1:5000」でアプリが起動します。
5. デバッグモードを使ってみよう
開発中に便利なのが「デバッグモード」です。これは、コードを保存したら自動でサーバーを再起動してくれる機能です。
flaskコマンドを使うときに、以下のように設定できます:
set FLASK_DEBUG=1
MacやLinuxでは:
export FLASK_DEBUG=1
その後、flask runで起動すれば、コードを書き換えるたびにサーバーを手動で再起動しなくても反映されるようになります。
6. run()とflaskコマンドの違いまとめ
ここで、app.run()とflask runの違いを整理してみましょう。
- app.run():Pythonファイルの中に書いて直接実行する方法。初心者にはわかりやすい。
- flask run:Flaskが公式に推奨している方法。環境変数の設定が必要だけど、本格的な開発に向いている。
どちらの方法でもアプリは動きますが、flask runを使う方が今後の学習にも役立つでしょう。
7. よくあるつまずきポイントと対処法
最後に、初心者がつまずきやすいポイントをいくつか紹介しておきます。
- flaskコマンドが見つからない:Flaskがインストールされていないか、仮想環境(venv)が正しく有効になっていない可能性があります。
- ポート5000が使えない:他のアプリがポート5000を使っている場合、サーバーが起動できないことがあります。この場合はポート番号を変えることもできます。
- 環境変数が設定できない:WindowsとMacでコマンドが違うので、注意が必要です。
まとめ
Flaskの開発サーバーを立ち上げる方法を学んできたことで、PythonでWebアプリケーションを動かすときの最初のハードルを越えられるようになったと思います。同じアプリでも、起動方法によって得られるメリットや使い勝手が変わるという点は、初心者にとって特に新鮮に感じられる部分でしょう。実際、app.run()とflask runの2つは同じように見えて、それぞれで性格が異なり、場面に応じた使い分けが大切になります。
Flaskの魅力は、必要なときに必要な方法で柔軟にアプリを動かせる点にあります。たとえば小さな学習用アプリならapp.run()で十分ですが、開発が進むにつれ、環境変数の設定、デバッグモードの活用など、より実践的な手法を身につけた方がスムーズに作業できます。今回の記事では、その一歩となる「開発サーバーの立ち上げ方」を丁寧にたどり、どちらの方法でもアプリが正しく動作する仕組みを確認してきました。
特に重要なのは、開発中の変化をすぐに反映できるデバッグモードの存在です。毎回サーバーを手動で再起動するのは、規模が大きくなるほど時間のロスも大きく、作業の流れが止まってしまいがちです。そこでFLASK_DEBUG=1を設定することで、変更を保存するだけでアプリが自動で更新され、効率よく開発を進められるようになります。この仕組みは初心者にとって非常に便利で、Web開発のスピード感を実感しやすくなるポイントでもあります。
また、開発サーバーが表示する「127.0.0.1:5000」というアドレスも、一見難しそうに見えて実はとてもシンプルな意味を持っています。127.0.0.1は自分のパソコンを指す特別なアドレスで、5000はそのアプリが使う通り道のようなものです。これを理解することで、Webアプリがどのように起動し、どこにアクセスして表示されているのかがはっきりとイメージできるようになります。
下にあらためて、Flaskアプリを起動する際によく使う基本構造をまとめておきます。この流れを押さえておけば、ほとんどのFlaskアプリを迷わず動かすことができます。コード自体は短くても、実際に手を動かして試してみることで理解が定着し、自分のアプリを自在に動かせるようになっていくはずです。
Flask開発サーバー起動の基本コード例
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "はじめてのFlaskアプリが動きました!"
if __name__ == "__main__":
app.run(debug=True)
このコードでは、アプリを直接実行したときにapp.run()が動作し、ローカル環境でサーバーが起動します。debug=Trueを指定しておくと、コード変更が自動で反映されます。さらに本格的な開発環境では、環境変数を設定してflask runを使う方法に切り替えることで、よりわかりやすく管理しやすいプロジェクトに成長させることができます。
どちらの方法も正しく理解しておくことで、状況に応じて柔軟に使い分けられるようになり、Flaskでの開発がぐっと快適になります。
生徒
「今日はFlaskのアプリを動かす方法が2つあるというのを初めて知りました!最初はapp.run()で動かして、慣れてきたらflask runを使うって感じなんですね。」
先生
「その通りです。どちらの方法も覚えておくことで、開発がスムーズになりますよ。特にflask runは本番に近い形で動かせるのでおすすめです。」
生徒
「デバッグモードも便利ですね。保存するだけで自動で更新されるのはすごく助かります!」
先生
「Web開発ではスピードがとても大事ですからね。デバッグモードを使うとコードの変更がすぐ反映されるので、試行錯誤がしやすくなります。」
生徒
「もっと複雑なアプリでも今日の内容が役に立ちそうです。次はテンプレートとかも学んでみたいです!」
先生
「その意欲があればすぐに上達しますよ。サーバーを自在に動かせるようになった今、次のステップに進む準備はもう十分です。」