English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Flask URL 建設

url_for()関数は、特定の関数のURLを動的に構築するのに非常に役立ちます。この関数は、最初の引数として関数の名前を受け取り、1つまたは複数のキーワード引数を受け取り、それぞれがURLの変数部分に対応します。

以下スクリプトはurl_for()関数の使用を示しています。

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ja.oldtoolbag.com
# Date : 2020-08-08
from flask import Flask, redirect, url_for
 app = Flask(__name__)
 @app.route('/admin')
 def hello_admin():
     return 'Hello Admin'
 @app.route('/guest/<guest>')
 def hello_guest(guest):
     return 'Hello %s as Guest' % guest
 @app.route('/user/<name>'
 def user(name):
     if name =='admin':
         return redirect(url_for('hello_admin'))
     else:
         return redirect(url_for('hello_guest',guest = name))
 if __name__ == '__main__':
     app.run(debug = True)

上記のスクリプトにはユーザー関数が一つあり、URLから値を受け取ります。

User()関数は、受け取った引数が'admin'と一致するかどうかをチェックします。一致する場合、url_for()を使用してアプリケーションをhello_admin()関数にリダイレクトし、一致しない場合、受け取った引数をguest引数としてhello_guest()関数に渡します。

上記のコードをファイルに保存してください hello.py、そしてPythonシェルで実行します。

ブラウザを開き、URLを入力してください - http://localhost:5000/user/admin

ブラウザでアプリケーションが返す結果は -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ja.oldtoolbag.com
# Date : 2020-08-08
Hello Admin

ブラウザに以下のURLを入力してください - http://localhost:5000/user/mvl

アプリケーションが返す結果は今や -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ja.oldtoolbag.com
# Date : 2020-08-08
Hello mvl as Guest