Установить URL для просмотра чертежей индивидуально - PullRequest
0 голосов
/ 23 сентября 2019

В Flask я могу изменить префикс чертежа, но есть ли способ изменить URl отдельного представления?

Например, скажем, у меня есть проект fish.Он имеет множество представлений, таких как fish.view, fish.edit, fish.index и fish.search.Префикс по умолчанию для светокопии /fishes/, поэтому представления в конечном итоге будут иметь вид /fishes/<id>/, /fishes/<id>/edit, /fishes/ и /fishes/search.

Как изменить URL-адрес fishes.search просто /search вместо /fishes/search, без изменения URL-адресов других представлений?

Я знаю, что мог бы сделать это:

@app.route('/search')
def search(**kwargs):
    return fish_views.search(**kwargs)

Однако, если бы я это сделал,тогда url_for('fish.search') все равно вернется /fishes/search.Я хочу, чтобы url_for вернул предпочтительный URL.

def create_app():
    app = Flask(__name__)
    from . import fish_views
    app.register_blueprint(fish_views.blueprint)
    app.change_view_url_somehow('fish.search', '/search')

1 Ответ

0 голосов
/ 24 сентября 2019

Без обезьяньего исправления декоратора Flask route или использования add_url_for вручную, самый простой способ - подключить /search только к основному приложению, указав конечную точку, к которой в конечном итоге будет принят план рыбы:

@app.route('/search', endpoint='fish.search')
def search(**kwargs):
    pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...