SWELL公式サイトへ 詳しくはこちら

Flask_Vol3:最初のFlaskアプリを作ろう

  • URLをコピーしました!

Hello Worldから始めるFlask:ルーティングの基本を理解する

目次

はじめに

前回のFlask_Vol2では、PythonとFlaskの開発環境を整え、仮想環境を構築したうえで最小限の動作確認を行いました。
今回のFlask_Vol3では、本格的にFlaskを使った開発の第一歩として「Hello World」を表示させ、ルーティングの基本を理解します。

Flaskでは、URLパス(例://aboutなど)と、実際に処理を行う関数を「ルーティング」という仕組みで対応づけます。ここをしっかり押さえることで、複数のページを持つWebアプリケーションをスムーズに開発できるようになります。

1. 最小構成のFlaskコード

まずは、最小限のコード例を示します。app.py ファイルに以下を記述し、実行してみましょう。

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello Flask!"

if __name__ == "__main__":
    app.run(debug=True)

💡解説

  • from flask import Flask: Flaskクラスをインポート
  • app = Flask(__name__): Flaskアプリのインスタンスを作成
  • @app.route("/"): デコレータを使って、URL / にアクセスされたときに実行する関数を指定
  • def hello(): return "Hello Flask!": 上記のURLにアクセスした場合、文字列「Hello Flask!」を返す
  • app.run(debug=True): 開発用サーバを起動し、debug=Trueでコードを変更すると自動リロードしてくれる

これが、「Hello World」 を表示させる最小構成のFlaskアプリケーションです。

2. Flaskの開発用サーバを起動してみよう

ターミナル(またはコマンドプロンプト)で以下のコマンドを実行します。

python app.py

※ 仮想環境を忘れずにアクティブ化しておきましょう
venv\Scripts\activate または.\venv\Scripts\Activate.ps1など)。

起動に成功すると、以下のようなメッセージが表示されます。

 * Serving Flask app 'app' (lazy loading)
 * Environment: production
   ...
 * Debug mode: on
 * Running on <http://127.0.0.1:5000/> (Press CTRL+C to quit)

この状態で、ブラウザで http://127.0.0.1:5000/ にアクセスすると、画面に「Hello Flask!」と表示されれば成功です。

ワンポイント:

127.0.0.1 はローカルホスト(自分のPC)を示しています。ポート番号 5000 はFlaskのデフォルト設定です。

3. ルーティングとデコレータの基本

Flaskでは、関数の上に @app.route("URL") というデコレータを書いて、処理を紐づけます。たとえば下記のように、複数のルートを設定できます。

@app.route("/")
def home():
    return "This is the home page!"

@app.route("/about")
def about():
    return "This is the about page."

  • @app.route("/")
    • URLが / にアクセスされたときに home() が呼び出される
  • @app.route("/about")
    • URLが /about にアクセスされたときに about() が呼び出される

また、ルートパスの中に変数を仕込むことも可能です(例:@app.route("/user/<username>") など)。これは次回以降、パラメータ付きのURLが必要になったときに詳しく説明します。

4. 追加のルートを試してみよう

練習として、少し別のエンドポイントを作成してみましょう。app.pyに以下のように書き足してください。

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello Flask!"

@app.route("/greet")
def greet():
    return "Hi there! This is the greet page."

if __name__ == "__main__":
    app.run(debug=True)

コードを保存し、再度 python app.py を実行してください。

debug=Trueの場合は、保存するとFlaskが自動でリロードしてくれます)

💡動作確認

  1. http://127.0.0.1:5000/
    • 「Hello Flask!」と表示される
  2. http://127.0.0.1:5000/greet
    • 「Hi there! This is the greet page.」と表示される

これで、複数のルーティングを設定できました。Flaskでは、各URLと関数を1対1で関連づけるだけでなく、同じ関数を複数のルートに紐付けることも可能ですし、パスパラメータを活用して動的に処理を変えることも可能です。

5. デバッグモードのメリットと注意点

上記の例で app.run(debug=True) としているのは、デバッグモードを有効化しているためです。

  • コードを変更して保存すると、自動でFlaskサーバがリロードしてくれる
  • エラーが発生した場合、ブラウザにエラー画面が詳細な形で表示される

これは開発中にとても便利ですが、本番運用ではセキュリティ上の理由から無効にします(デバッグ情報が外部に漏れてしまう可能性があるため)。開発時だけ有効にしましょう。

まとめ

💡ゴール

  1. Flaskアプリ開発の第一歩として、ブラウザに文字列を表示できる状態を作る
    • app.route("/") でトップページを設定し、関数内で返す文字列を表示する流れを実践しました。
    • ブラウザに「Hello Flask!」が出れば成功です。
  2. ルーティング(URLと関数の対応づけ)を体感する
    • 追加のルートを増やし、/greetなど別のページを用意できました。
    • シンプルですが、FlaskでのURL設計の第一歩をしっかり理解できたと思います。

これでFlaskの基本的な流れはつかめましたね!

次回は、テンプレートエンジン「Jinja2」を活用して、動的にHTMLを生成する方法を扱います。文字列の返却だけでなく、HTMLファイルを使ってWebページを表示することで、より実践的なWebアプリに近づきます。

本格的にWebアプリらしいページが作れるようになるので、ぜひ次回もお楽しみに!

プログラミング初心者におすすめ!「スッキリわかるPython入門 第2版」

プログラミングに興味があるけれど、何から始めればいいかわからない方に最適な一冊が「スッキリわかるPython入門 第2版」です。以下のポイントを参考にしてください。

本書の特徴とメリット

  • シリーズ累計90万部突破
    多くの読者に支持され、信頼されている大人気入門書の改訂版。
  • 初心者でもわかりやすい解説
    基本的な「コツ」を丁寧に説明し、迷わず学習を進められます。
  • 実践的な「しくみ」の理解
    プログラミングの基礎だけでなく、実際の開発に役立つ知識を習得可能。
  • 「落とし穴」の回避
    初心者が陥りがちな間違いをカバーし、安心して学習を進められる内容。

実際の読者の声

  • 現役プログラミング教室の先生も推薦!
    「この本を読んでPCスキルをマスターすれば、それでメシを食えますよ」という評価もあるほどの内容。面白くて勉強になるとの声が多い。

この機会に「スッキリわかるPython入門 第2版」を手に入れ、プログラミングの世界に一歩踏み出しましょう。下のリンクをクリックして、詳細をチェックしてみてください!

テックジムの経験が詰まったPythonプログラミング講座

プログラミング教育において、多くの初学者が挫折する理由をご存じでしょうか?実は、それには多くの共通点があります。テックジムは、その問題点を深く理解し、20年以上にわたって蓄積してきた経験をもとに、誰もが安心して学べるプログラミング講座を提供しています。

テックジムは、ただの学習場ではありません。プログラミングを始めたい方や、より高いレベルに達したい方々に向けた、実践的な学びの場です。私たちが提供するカリキュラムは、初心者が直面する課題や躓きやすいポイントを徹底的に研究し、それを解決するためにデザインされています。

多くのプログラミングスクールが、フレームワークや複雑な技術から始めることで、学習者に過度な負担をかけ、結果として挫折を生む原因となっています。テックジムでは、まずは本当に重要な基礎からスタートすることで、無理なくスキルを積み上げていくことができます。例えば、関数やクラスといったプログラミングの核心部分をしっかりと理解し、それを使いこなすための時間を十分に確保しています。

これにより、受講生たちは無駄な混乱を避け、確実にスキルを身につけていくことができるのです。テックジムでの学びは、単なる知識の詰め込みではなく、実際に「できる」ことを目指した実践的なトレーニングです。

テックジムのPythonプログラミング講座は、経験と実績が詰まった講座です。初心者でも安心して参加でき、確実にステップアップできるこの講座で、あなたもプログラミングの世界に飛び込んでみませんか?

挫折を防ぐカリキュラム

プログラミング学習に挑戦した多くの人が、途中で挫折してしまうことがあります。これは、難解なフレームワークや複雑な概念にいきなり取り組むことが主な原因です。しかし、テックジムではそのような挫折を未然に防ぐため、独自のカリキュラムを採用しています。

テックジムのカリキュラムは、まず基礎をしっかりと固めることから始めます。関数やクラスといったプログラミングの根幹をじっくり学ぶことで、無駄な負荷をかけずに確実にスキルを身につけることができます。このアプローチにより、学習者は「何をやっているのかわからない」という混乱を避け、自信を持って次のステップに進むことができます。

また、テックジムでは、段階的にスキルを積み上げることで、学習の進行に伴う負担を最小限に抑えています。その結果、無理なく、着実にプログラミングの世界で成功を収めることができるのです。

テックジムのプログラミング講座は、学ぶことの楽しさを実感しながら、挫折せずに成長できる最適な環境を提供します。

最新の技術と経験豊富なサポートの融合

プログラミング学習において、最新技術の活用は欠かせません。テックジムでは、ChatGPTを用いた学習サポートを取り入れています。ChatGPTは、あらゆる質問に即座に答え、コードのバグ解決もスムーズにサポートします。これにより、効率的に学習を進めることが可能です。

しかし、テックジムの強みは、これだけではありません。どんなに優れたAIでも、人間のコーチによる個別サポートの価値は計り知れません。テックジムでは、経験豊富なプロのコーチがあなたの学習を支えます。プログラミングの基礎から応用まで、丁寧な指導と的確なフィードバックを提供し、あなたが抱える疑問や課題を一つ一つ解決していきます。

このように、最新の技術とプロのコーチングを組み合わせることで、テックジムでは、効率的でありながらも確実にスキルを身につけることができる学習環境を提供しています。

テックジムで学びながら、最先端のAI技術とプロの指導のベストな融合を体験してみませんか?

成果を実感できるカリキュラム

テックジムのPythonプログラミング講座は、その効果と実績で多くの受講生から高い評価を受けています。8月には180名を超える方々がこの講座にエントリーし、その人気と信頼の高さを証明しています。

この講座では、受講生が着実にスキルを身につけ、成長していることを実感できるカリキュラムを提供しています。プログラミングの基礎から実践的な応用まで、段階的に学べる内容は、初心者から経験者まで幅広く対応しています。また、学んだ知識をすぐに実践に移せる環境を整えており、学習の成果をリアルタイムで確認できるのも大きな特徴です。

テックジムの講座を受講した多くの方々が、「理解が深まった」「自信を持ってコードを書けるようになった」といった喜びの声を寄せています。これまでに培った経験と実績を活かし、受講生一人ひとりが成功への第一歩を踏み出せるよう全力でサポートしています。

あなたも、この成果を実感できるカリキュラムで、プログラミングスキルを確実に伸ばしてみませんか?

まずは無料体験からスタート!

プログラミングに興味はあるけれど、いきなり本格的な学習に踏み出すのは少し不安…そんな方に最適なのが、テックジムの無料体験です。まずは気軽に始めてみたい、という方のために、テックジムではデモレッスンを提供しています。

この無料体験では、実際のカリキュラムの一部を体験し、学習の進め方や講師のサポートを実感することができます。受講前に「自分に合っているかどうか」を確認できるので、安心してスタートを切ることができます。

プログラミングが全く初めての方も、すでにある程度の経験を持っている方も、まずはこの無料体験で、テックジムの学びを体感してみませんか?今すぐ始める一歩が、あなたの未来を大きく変えるかもしれません。

無料体験は随時開催中です。ぜひこの機会に、新たなスキルを手に入れるための第一歩を踏み出してみてください!

よかったらシェアしてね!
  • URLをコピーしました!
目次