<Python, flask> endpointとは、、、
Flask
さんで使われている語句 endpoint
って何? と思った。
調べてみた。
いつも頼りになるstackoverflow
さん。
最初の回答はよくわからなかったが、2回目の回答を試す。
In [1]: from flask import Flask, url_for ...: ...: app = Flask(__name__) ...: ...: # We can use url_for('foo_view') for reverse-lookups in templates or view functions ...: @app.route('/foo') ...: def foo_view(): ...: pass ...: ...: # We now specify the custom endpoint named 'bufar'. url_for('bar_view') will fail! ...: @app.route('/bar', endpoint='bufar') ...: def bar_view(): ...: pass ...: In [3]: with app.test_request_context('/'): ...: print(url_for('foo_view')) ...: print(url_for('bufar')) ...: /foo /bar In [4]: with app.test_request_context('/'): ...: print(url_for('bar_view')) ...: --------------------------------------------------------------------------- BuildError Traceback (most recent call last) :
ふーん、、、で、ちと思い出したapp.url_map
をする。
In [5]: app.url_map Out[5]: Map([<Rule '/foo' (GET, HEAD, OPTIONS) -> foo_view>, <Rule '/bar' (GET, HEAD, OPTIONS) -> bufar>, <Rule '/static/<filename>' (GET, HEAD, OPTIONS) -> static>]) In [6]: def hage(): ...: return 'Hage!' ...: In [7]: app.add_url_rule('/hogehoge', 'hage', hage) In [8]: app.url_map Out[8]: Map([<Rule '/hogehoge' (GET, HEAD, OPTIONS) -> hage>, <Rule '/foo' (GET, HEAD, OPTIONS) -> foo_view>, <Rule '/bar' (GET, HEAD, OPTIONS) -> bufar>, <Rule '/static/<filename>' (GET, HEAD, OPTIONS) -> static>])
なるへそう。
なんとなく、、endpoint
は、url_for
でURL
一覧app.url_map
から、対象のURL
を探す時のキーっぽい。
デフォルトは、@app.route()
で、デコレートされたview function
。
マニュアルさんも。
http://flask.pocoo.org/docs/0.12/api/#flask.Flask.add_url_rule
過去記事 url_for
nekoyukimmm.hatenablog.com