gpt4 book ai didi

python - 如何将 url_map.iter_rules 与蓝图对象而不是应用程序一起使用

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:25 24 4
gpt4 key购买 nike

我有一个蓝图对象“api”和一个 apis.py 文件,其中有许多使用 api.route 注释定义的 API。例如:

@api.route('/', methods=['GET'])
def get_info():

我想迭代并获取所有 API 的摘要,这些 API 与我们在应用程序对象上使用“url_map.iter_rules”时得到的相同。我们如何使用 api 蓝图对象来做到这一点?我已使用

在我的 init.py 文件中注册了蓝图
from .api_1 import api as api_blueprint
app.register_blueprint(api_blueprint)

最佳答案

我认为,如果您在注册蓝图后调用app.url_map.iter_rules(),您也将获得子域的所有端点,例如

api.py

from flask import Blueprint
api = Blueprint('api', __name__)
@api.route('/')
def call_api():
return ""

init.py:

from flask import Flask, Blueprint
from api import api

public = Blueprint('public', __name__)
@public.route('/')
def home():
return render_template('public/home.html')


app = Flask(__name__)
app.register_blueprint(public)
app.register_blueprint(api, subdomain='api')
print(list(app.url_map.iter_rules()))

[<Rule 'api|/' (GET, HEAD, OPTIONS) -> api.call_api>,
<Rule '/' (GET, HEAD, OPTIONS) -> public.home>,
<Rule '/static/<filename>' (GET, HEAD, OPTIONS) -> static>]

关于python - 如何将 url_map.iter_rules 与蓝图对象而不是应用程序一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36564080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com