gpt4 book ai didi

python - 创建一个 Flask 公共(public) url 装饰器

转载 作者:太空狗 更新时间:2023-10-29 21:04:04 25 4
gpt4 key购买 nike

我想为 Flask 创建一个装饰器routes 将某些路由标记为公共(public)路由,这样我就可以做这样的事情:

@public
@app.route('/welcome')
def welcome():
return render_template('/welcome.html')

在其他地方,这是我认为装饰器和检查的样子:

_public_urls = set()

def public(route_function):
# add route_function's url to _public_urls
# _public_urls.add(route_function ...?.url_rule)
def decorator(f):
return f

def requested_url_is_public():
from flask import request
return request.url_rule in _public_urls

然后,当发出请求时,我有一个检查 requested_url_is_public 的上下文函数。

我有点难过,因为我不知道如何在 public 装饰器中获取给定函数的 url 规则。

也许这不是 Flask 的最佳设计选择,但我希望有另一种简单而优雅的方法来实现这一点。

我以前见过这样的模式,想模仿一下。例如,这类似于 Django 的 login_required。装饰器。

我很乐意阅读对此的想法。

最佳答案

Flask 已经有一个 login_required 装饰器(参见 view decorators )。如果您使用 public_urls 来决定哪些 url 需要身份验证,那么您最好使用它。

关于python - 创建一个 Flask 公共(public) url 装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8195800/

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