Flask アプリルート

Salman Mehmood 2024年2月15日
Flask アプリルート

Flask でルートを作成する方法と、Flask でルートを呼び出すときに応答を取得する方法を学習します。

Flask で app.route() デコレータを使用してページを作成する

ルーティングできる方法はデコレータを使用することですが、デコレータとは何ですか?さて、この@app.route('/') のような関数を持つ@シンボルを見ると、それはデコレータです。

これは、既存の Python 関数をまとめて、その動作を変更できる方法です。URL を戻り値にルーティングまたはマップし、ユーザーが URL を要求するたびに、サーバーの応答は関数の戻り値になります。

もっと意味のある例をいくつか紹介しますので、ルートを作成しましょう。

@app.route('/fund-api')

次に、Fund_Func() という関数を定義します。これにより、ユーザーが通常/fund-api のような URL になるページにアクセスするたびに、この関数はこの関数でラップされたすべてのコンテンツを返します。HTML <h2> タグを返します。

def Fund_Func():
    return "<h2>Your fund is returned</h2>"

このサーバーを保存して実行すると、インデックスページにアクセスして、URL 内に fund-api を書き込むことができます。つまり、サーバーに Fund_Func ページを提供するように要求し、要求が有効かどうかを確認します。。ルートが有効な場合、このルート内に存在する関数が実行されます。

サーバーに関数を返すように要求します

render_template() を使用して HTML を含めるより良い方法があります。私たちが行うもう 1つのことは、ルート内で変数を使用することです。

Web ページを設定していて、この Web ページ内にプロファイルセクションがあり、どのユーザーがそのプロファイルを使用しているかを知りたいとします。

この URL の一部になるには変数を結合する必要があり、その変数に応じてコンテンツが変更されます。次に、新しいルートを作成します。ルート内に、candidate_name という変数を追加し、山かっこで囲みます。

ここで、ルート内で使用している関数内にパラメーターを渡します。次に、画面に表示したいものを使用してこの変数を返すことができます。この変数を URL から渡します。

@app.route("/fund-user-api/<candidate_name>")
def Fund_Func_Var(candidate_name):
    return "<h2>Hi %s,your fund is returned</h2>" % candidate_name

URL で変数値を渡すと、渡したパラメーターで応答が返されます。パラメーター値を渡さないと、これも URL の一部であるため、エラーが発生します。

ユーザーを URL に渡す

完全な Python コード:

from flask import Flask

app = Flask(__name__)


@app.route("/")
def index():
    return "The main page"


@app.route("/fund-api")
def Fund_Func():
    return "<h2>Your fund is returned</h2>"


@app.route("/fund-user-api/<candidate_name>")
def Fund_Func_Var(candidate_name):
    return "<h2>Hi %s,your fund is returned</h2>" % candidate_name


if __name__ == "__main__":
    app.run(debug=True)
著者: Salman Mehmood
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn