Flask Webアプリケーションで URLパラメータを取得するコードを紹介します。
Flaskアプリケーションでアクセスした際のURLのパラメータを取得したい場合があります。
Flaskアプリケーションでは、request オブジェクトを利用すると、URLパラメーターを取得できます。
args.get メソッドでパラメータを取得します。書式は以下です。
request.args.get([パラメーター名],[デフォルト値])
Flaskアプリケーションを作成します。
以下のコードを記述します。
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<h1>URLパラメーター取得のデモ</h1>
<p>{{ AppMessage }}</p>
</body>
</html>
from flask import Flask, render_template, request
app = Flask(__name__)
# Make the WSGI interface available at the top level so wfastcgi can get it.
wsgi_app = app.wsgi_app
@app.route('/')
def hello():
name = request.args.get('user','Default')
return render_template("index.html", AppMessage = 'ようこそ' + name + 'さん')
if __name__ == '__main__':
import os
HOST = os.environ.get('SERVER_HOST', 'localhost')
try:
PORT = int(os.environ.get('SERVER_PORT', '5555'))
except ValueError:
PORT = 5555
app.run(HOST, PORT)
AppMessage
プレースホルダを記述しています。
importに、render_template と request を追記しています。
from flask import Flask, render_template, request
request.args.get()
メソッドを呼び出します。第一引数の user
のパラメーターの値を取得します。
値が取得できない場合は、"Default" を利用します。取得した値を name
変数に代入します。
アプリケーションルートにアクセスした際にindex.htmlのテンプレートを返します。name変数を含むメッセージをAppMessageプレースホルダに設定します。
@app.route('/')
def hello():
name = request.args.get('user','Default')
return render_template("index.html", AppMessage = 'ようこそ' + name + 'さん')
プロジェクトを実行します。下図のページが表示されます。アプリケーションルートのURLでページが表示されますが、
パラメーターは無いため、ページのメッセージは「ようこそDefaultさん」が表示されます。
以下のURLにアクセスします。
(アプリケーションルート)/?user=penguin
userパラメーターに設定されている"penguin"の値が取得でき、「ようこそpenguinさん」のメッセージが表示されます。
Flask WebアプリケーションでURLパラメーターを取得できました。