gpt4 book ai didi

python - 在两个应用程序之间使用 url_for

转载 作者:行者123 更新时间:2023-11-28 19:18:37 27 4
gpt4 key购买 nike

我喜欢很多约定 Overholt example使用过,但遇到了特定问题。

我使用 werkzeug.wsgi 中的 DispatcherMiddleware 对象设置了两个应用程序:

from werkzeug.wsgi import DispatcherMiddleware
from myapp import api, frontend

application = DispatcherMiddleware(frontend.create_app(), {
'/api': api.create_app()
})

这很好用;终点都在那里。检查 application.app.url_map 显示前端的映射,application.mounts['/api'].url_map 正确显示 api 的映射。

我遇到的问题是我想在我的前端模板中为 api 中的方法使用 url_for(),但还没有找到实现该方法的方法。对 URL 路径进行硬编码是可行的,但如果我想移动内容,稍后会导致问题。

最佳答案

你可以做的是向你的后端添加一个新的路由,比如说 /api/route-map 它会吐出路由的 map (字典/JSON)(你可以使用 url_for 来生成 map )并从你的前端点击这条路线来获得动态路线图,你可以在你的前端模板中使用你的自定义 jinja2 函数(你可以创建为如下所示)。

def api_url_for(route_fn_string):
"""
This is just boilerplate code. Please do some checking here.
'"""
return route_map[route_fn_string]


app.jinja_env.globals.update(api_url_for=api_url_for)

现在您可以在您的 jinja2 模板中执行 {{api_url_for('update')}} 以获取其实际路径。

如果您将这两个应用程序放在同一台服务器上,那么您可以简单地将路由映射共享为全局或通过 getter 函数。

关于python - 在两个应用程序之间使用 url_for,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30111146/

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