flask 経路と変数
flaskは使いやすいので掘り下げていこうと思う。
経路
1.ソース(server.py)
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello, World' @app.route('/py') def py(): return 'Hello, Python'
2.実行
今回はそのまま「python server.py」で実行するのではなく環境変数を使用した方法をとってみる。
$ export FLASK_APP=server.py $ flask run --port=80 --host=0.0.0.0
ソースにベタ書きするかは好みの差かな。
デバッグをONにする場合は、以下の環境変数を設定してrunすればいい。
$ export FLASK_ENV=development
3.結果
http://IPアドレス/
「Hello, World」
http://IPアドレス/py
「Hello, Python」
になるので、route()が効いていることがわかる。
公式曰く「もっとできることがあります!」らしいので、また調べてみる。
変数
ざっくり説明すると、routeに特定の文字を記載することで、値をプログラム側に認識させる方法。
1.ソース(variable.py)
from flask import Flask from markupsafe import escape app = Flask(__name__) #文字列 @app.route('/str/<str>') def string(str): return 'Hello, ' + escape(str) #数値 @app.route('/intVal/<int:intVal>') def intVal(intVal): return 'Hello, %d' % intVal #実数 @app.route('/floatVal/<float:floatVal>') def floatVal(floatVal): return 'Hello, %f' % floatVal #パス @app.route('/path/<path:subpath>') def path(subpath): return 'Subpath %s' % escape(subpath) #uuid @app.route('/uuid/<uuid>') def uuid(uuid): return 'uuid %s' % escape(uuid)
2.結果
実行方法は同じなので結果だけ。
①http://IPアドレス/str/123
「Hello, 123」
②http://IPアドレス/intVal/777
「Hello, 777」
③http://IPアドレス/floatVal/777.7
「Hello, 777.700000」
④http://IPアドレス/path/1234/567/78
「Subpath 1234/567/78」
⑤http://IPアドレス/uuid/aadab881-daff-4188-9364-ca99e598e224
「uuid aadab881-daff-4188-9364-ca99e598e224」
まとめ
値の受け渡しはページ遷移とかに応用できそう。
uuidとかも特定のユーザの操作の識別とかに使えそう。