Я бы хотел создать декоратор для Flask маршрутов, чтобы пометить определенные маршруты как общедоступные, чтобы я мог делать такие вещи:
@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
.
Я немного озадачен, потому что яне знаю, как получить правило url для данной функции в декораторе public
.
Возможно, это не лучший выбор дизайна для Flask, но я ожидаю, что есть еще один простой и элегантный способдля достижения этой цели.
Я видел подобные шаблоны раньше и хотел бы имитировать их.Например, это что-то вроде аналога декоратора login_required
Джанго.
Я бы с удовольствием прочитал мысли по этому поводу.