Flask入門|初めてのFlaskコードを書いてみよう【チャプター1-03】

ながみえ

一つ前のページではFlaskの開発環境を構築しました。

今回は 初めてのFlaskコード を書いてみましょう。

Chapter1:Flask入門編
 ・Chapter1-1:Flaskとは何か
 ・Chapter1-2:Flaskの開発環境を構築しよう
 ・Chapter1-3:初めてのFlaskコードを書いてみよう ◁今回はここ
 ・Chapter1-4:ルーティングを理解しよう
 ・Chapter1-5:動的ルーティングを理解しよう
Chapter2:Jinja2入門編
Chapter3:フィルター編
Chapter4:フォーム編
Chapter5:データベース編
Chapter6:Flaskの便利機能編
Chapter7:アプリ開発編

FlaskはPythonでWebアプリを作るためのとてもシンプルで軽量なフレームワークです。

実は、Flaskアプリを動かすためには、たった数行のコードがあれば十分なんです。

「Flaskってこうやって動くんだ」という全体の流れをつかむことが目的ですので、深く考えすぎず、1行ずつ確認していけば大丈夫です。

<<前のページ

Flaskの記事一覧

次のページ>>

Flaskアプリの最小コード構成を理解しよう【最初の一歩】

Flaskでは、たった数行のコードでWebアプリを作ることができます。

必要な構成は大きく分けて以下の3つです:

  1. Flaskのインスタンスを作る
  2. URLと関数を結びつける(ルーティング)
  3. アプリを起動する

この構成を押さえておけば、どんなに規模が大きいアプリでも基本は理解できます。

【Python】勉強猫がノートパソコンを前にして学習を始める様子。記事内の学習スタート用イラスト

ブラウザにHelloFlask!と標示しよう

以下が、今回作るFlaskアプリの完成コードです。

VSCにコピーするか書き写してください(覚えるために書き写すことを推奨します)。

from flask import Flask  # flaskモジュールの中のFlaskクラスをインポート

# -- インスタンス生成 --
app = Flask(__name__)  # Flaskクラスを使ってアプリのインスタンスを作成。引数には__name__を指定

# -- ルーティング --
@app.route("/")         # ルートURL(http://〜/)にアクセスがあった時の処理を定義
def hello_flask():      # 関数hello_flaskを定義
    return '<h1>HelloFlask!</h1>'  # ブラウザに表示するHTML文字列を返す

# -- サーバー起動 --
if __name__ == "__main__":  # このファイルが直接実行されたときだけ、以下の処理を行う
    app.run(debug=True)     # Flaskアプリを起動。debug=Trueをつけることでエラー時に詳細表示される

コードを保存したら実行してみましょう。

正常に起動すれば、ターミナルにURL(例:http://127.0.0.1:5000/)が表示されるので、それを「Ctrl + クリック」でブラウザ表示しましょう。

「HelloFlask!」と表示されたら成功です!

ここから先は、コードの各行の詳細を紹介します。

次回以降のチャプターで詳細に学習していきますので、今回の時点では雰囲気がつかめれば大丈夫です。

from flask import Flask

Flaskという モジュール の中から、Flaskというクラスだけを取り出して使うという意味です。

FlaskクラスはFlaskアプリを作るための「本体」です。これを使ってアプリケーションの設定や動作を行います。

あわせて読みたい
【Python入門】モジュールでコードを整理しよう【レッスン5-8】
【Python入門】モジュールでコードを整理しよう【レッスン5-8】

app = Flask(__name__)

Flaskクラスからアプリケーションのインスタンス(実体)を作成しています。変数appに代入するのが慣例です。

この__name__はPythonの特別な変数で、現在のファイルが直接実行されたのかどうかを判断するために使われます。

Flaskではこの値をもとにテンプレートや静的ファイルの場所を自動で判断しています。

@app.route("/")

この行はデコレーターと呼ばれ、次の行の関数とURLパス(ここでは /)を結びつける役割をします。

関数の上に@をつけて書く特殊な構文で、関数に追加の処理や設定を加えるときに使います。Flaskではルーティング(URLと処理の対応づけ)でよく使います。

ルーティングについては次の記事で詳細に学習します。デコレーターが分からない方は↓↓の記事で復習しましょう。

あわせて読みたい
【Python中級】デコレーターとは?関数をより柔軟に扱うテクニック【レッスンF-2】
【Python中級】デコレーターとは?関数をより柔軟に扱うテクニック【レッスンF-2】

def hello_flask():

関数を定義しています。

この関数はルートURL / にアクセスがあったときに呼び出されます。

return '<h1>HelloFlask!</h1>'

この行はHTML形式の文字列(h1~の部分)を返しています。Flaskではこのように文字列を返すことで、その内容がブラウザに表示されます。

Flaskの学習を進めていくにあたり、HTMLの基礎文法だけは理解しておきましょう。

↓↓のサイトのレッスン1(全て無料)だけで十分です。

あわせて読みたい
初心者向けHTML/CSS入門|基礎から学べるWebサイト制作講座
初心者向けHTML/CSS入門|基礎から学べるWebサイト制作講座

if __name__ == "__main__":

このファイルが他のファイルからではなく、直接実行された場合にだけ中の処理を行うための書き方です。

app.run(debug=True)

Flaskアプリを実行する命令です。

引数debug=Trueをつけることで、コードの変更を即座に反映したり、エラー内容を詳しく表示してくれたりします。

開発時にはとても便利です(本番では必ずFalseにします)。

まとめ

Flaskはたった数行のコードでWebアプリを作れる軽量なフレームワークです。

この1記事であなたも立派な「Flask開発者の第一歩」を踏み出しました!

次は「ルーティングとは何か?」を深掘りして、より柔軟なURLの設計を学んでいきます。

<<前のページ

Flaskの記事一覧

次のページ>>

FAQ|Flaskの最小コードで「HelloFlask!」を表示する方法

Q
Q1. Flaskコードの保存ファイル名に決まりはありますか?

特に決まりはありませんが、初心者のうちは「app.py」や「main.py」など、一般的に使われる名前を使うのが安心です。また、ファイル名と同じ名前の関数や変数を使うとエラーになることがあるので避けましょう。

Q
Q2. ターミナルに「ModuleNotFoundError: No module named ‘flask’」と出たらどうすればいい?

これはFlaskがインストールされていないことが原因です。仮想環境をアクティブにした状態で pip install flask を実行してください。それでも解決しない場合は、仮想環境が正しく作成・有効化されているかを確認しましょう。

質問用コンタクトフォーム

この記事を書くにあたりAIを活用しています。

人間の目による確認も行っていますが、もし間違い等ありましたらご指摘頂けると大変助かります。

記事URLをコピーしました