Flask ウェブフレームワークの始め方

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、Python 用の軽量 Web フレームワークである Flask を始めるためのプロセスを案内します。基本的な Flask アプリケーションを作成し、ローカルで実行し、ルーティングとテンプレートのレンダリングの基本概念を理解する方法を学びます。

注:コードファイルを自分で作成し、環境で実行する必要があります。Web 5000 で Flask サービスの状態をプレビューできます。

Flask のセットアップ

Flask を始めるには、インストールして新しいプロジェクトをセットアップする必要があります。以下の手順に従ってください。

  1. ターミナルまたはコマンドプロンプトで以下のコマンドを実行して Flask をインストールします。

    pip install flask
    
  2. 新しいファイルを開き、app.py として保存します。

    cd ~/project
    touch app.py
    
  3. Flask モジュールをインポートし、Flask クラスのインスタンスを作成します。

    from flask import Flask
    
    app = Flask(__name__)
    

基本的なルートの作成

Flask のルートは、アプリケーションの URL パターンを定義します。「Hello, World!」のメッセージを表示する基本的なルートを作成しましょう。

  1. app.py ファイルに以下のコードを追加します。

    @app.route("/")
    def hello_world():
        return "Hello, World!"
    
  2. ファイルを保存します。

アプリケーションの実行

これで Flask アプリケーションをセットアップし、基本的なルートを作成しましたので、アプリケーションを実行して動作を確認しましょう。

  1. ターミナルまたはコマンドプロンプトで、app.py ファイルがあるディレクトリに移動します。

  2. 以下のコマンドを実行して Flask 開発サーバーを起動します。

    flask run --host=0.0.0.0
    

--host=0.0.0.0 は、アプリケーションを公開で利用可能にするために使用されます。これを指定しない場合、アプリケーションはローカルマシン上でのみ利用可能になります。

その後、Web 5000 のタブに切り替えてページを更新します。

HTML テンプレートの追加

Flask は Jinja2 テンプレートを使用して HTML コンテンツを生成します。テンプレートファイルを作成し、ルートでレンダリングしましょう。

  1. プロジェクト内に templates という名前の新しいディレクトリを作成します。

  2. templates ディレクトリの中に、index.html という名前の新しいファイルを作成します。

  3. index.html ファイルを開き、以下の HTML コードを追加します。

    <!doctype html>
    <html>
      <head>
        <title>Flask Quickstart</title>
      </head>
      <body>
        <h1>Hello, Flask!</h1>
      </body>
    </html>
    
  4. app.py ファイルを変更して、index.html テンプレートをレンダリングするようにします。

    from flask import render_template
    
    @app.route("/")
    def hello_world():
        return render_template("index.html")
    

再度アプリケーションを実行する

これで HTML テンプレートを追加したので、再度アプリケーションを実行してレンダリングされたテンプレートを見てみましょう。

  1. Flask 開発サーバーがまだ実行中であれば停止します(Ctrl+C を押します)。

  2. 以下のコマンドを実行してサーバーを再度起動します。

    flask run --host=0.0.0.0
    

このとき、HTML テンプレートに「Hello, Flask!」のメッセージが表示されるはずです。

Hello, Flask!

動的コンテンツの追加

Flask を使えば、動的コンテンツをテンプレートに渡すことができます。名前パラメータを渡して個別の挨拶を表示するようにルートを変更しましょう。

  1. app.py ファイルを変更して、ルートで名前パラメータを受け取るようにします。

    @app.route("/<name>")
    def hello(name):
        return render_template("index.html", name=name)
    
  2. index.html ファイルを開き、個別の挨拶を表示するように <h1> タグを変更します。

    <h1>Hello, {{ name }}!</h1>
    

再度アプリケーションを実行する

再度アプリケーションを実行して、動的コンテンツ機能をテストしましょう。

  1. Flask 開発サーバーがまだ実行中であれば停止します(Ctrl+C を押します)。

  2. 以下のコマンドを実行してサーバーを再度起動します。

    flask run --host=0.0.0.0
    
  3. Web 5000 のタブの URL をコピーし、ブラウザの新しいタブに貼り付けます。

Copying Web 5000 URL

  1. URL の末尾に /LabEx を追加して Enter キーを押します。

Hello LabEx webpage

  1. URL 内の name パラメータの値を変更して Enter キーを押します。

まとめ

この実験では、新しいプロジェクトをセットアップし、ルートを作成し、テンプレートをレンダリングし、動的コンテンツを渡すことで Flask を始める方法を学びました。Flask は Web アプリケーションを構築するための強力なツールであり、この実験はさらなる探索と開発のための堅牢な基礎を提供します。