对于endpoint(端点)的理解

对于endpoint(端点)的理解

参考文章:https://www.jianshu.com/p/808917d76b51

flask框架的程序理念是把URL地址映射到相应的业务逻辑上。

其中,映射过程并非直接为URL–>viewfunction,而是URL–>endpoint–>viewfunction。

endpoint的存在意义

endpoint一般用作反向查询URL地址(viewfunction–>endpoint–>URL)。这样就可以让URL与视图间的关联代码进行解耦,比如:在两个视图通过url_for()进行相关联的时候,可以任意改变视图的URL,只要端点不变,就不需要改动关联代码。

endpoint在蓝图中的应用

除了解耦作用,endpoint在蓝图中还有更妙的用处:通过端点实现对命名空间的支持

main.py

from flask import Flask, Blueprint
from admin import admin
from user import user

app = Flask(__name__)
app.register_blueprint(admin, url_prefix='admin')
app.register_blueprint(user, url_prefix='user')

admin.py

admin = Blueprint('admin', __name__)

@admin.route('/greeting')
def greeting():
    return 'Hello, administrative user!'

user.py

user = Blueprint('user', __name__)
@user.route('/greeting')
def greeting():
    return 'Hello, lowly normal user!'

user.py

user = Blueprint('user', __name__)
@user.route('/greeting')
def greeting():
    return 'Hello, lowly normal user!'

打印url,可以发现虽然不同蓝图下的url相同,但是端点是不同的,也就是说不同的蓝图,他们的命名空间是相互隔离的。

print url_for('admin.greeting') # Prints '/admin/greeting'
print url_for('user.greeting') # Prints '/user/greeting'

上一篇
k8s相关的知识 k8s相关的知识
使用k8s运行一个应用的过程 创建集群 一切都是在集群(机器)上运行的 创建deployment Deployment是管理 Pod 创建和扩展的推荐方法 检查Pod的健康状况,并且在 Pod 中的容器终止的情况下重新启动新的容器
下一篇
bisect&pop,remove,del的区别&双指针使用场景 bisect&pop,remove,del的区别&双指针使用场景
这篇文章有三个知识点: python的二分查找库bisect pop,remove,del的区别 双指针使用场景的简单说明 bisectbisect是一种数组二分查找算法库,返回合适的插入位置索引。 参考:https://docs.p
2021-02-03
目录