【问题标题】:Flask Blueprint Index URL keeps adding trailing slashFlask Blueprint Index URL 不断添加斜杠
【发布时间】:2017-09-07 17:51:36
【问题描述】:

蓝图定义为

publicweb_bp = flask.Blueprint('publicweb', __name__, url_prefix='/<lang_code>/<country_code>/<market_code>')

我有一个索引路由定义为

@publicweb_bp.route('/', strict_slashes = False)
def pp_index():
    return 'Hello'

另一个路由定义为

@publicweb_bp.route('/abc', strict_slashes = False)
def pp_index():
    return 'Abcdefg :P'

问题是当我访问例如网址时

http://localhost/en/us/m1

它总是把我送到

http://localhost/en/us/m1/

但是如果我访问

http://localhost/en/us/m1/abc

它让我坚持

http://localhost/en/us/m1/abc

我什至尝试过使用 strict_slashes 选项并将其关闭,但没有任何效果。

它似乎不起作用,甚至认为它适用于蓝图的所有其他 URL,例如'/abc'

我注意到的另一件事是,如果我不使用蓝图并使用 strict_slashes = False 在应用程序本身上定义“/”路由,它会按预期工作!

【问题讨论】:

  • 是 abc 路径参数吗?
  • 同一个question。也许会有用。
  • 实际上你是在告诉索引路由匹配url_prefix + '/'。尝试删除斜线,看看它是否工作。也尝试通过 curl 发出请求,因为,你知道,浏览器有缓存。
  • 什么都试过了,好像没解决。
  • 我有同样的问题,并认为它与@DanilaGranchar 链接的线程不同。我认为 url 是路由本身的唯一内容是 / 的索引和 abc 路由之间的区别,它有其他文本要添加或删除斜杠。似乎您应该能够要求 bp 非严格地应用索引斜线,但在查找时没有找到解决方案。

标签: python python-3.x flask werkzeug


【解决方案1】:

试试

@publicweb_bp.route('', strict_slashes=False)

这适用于 Flask v1.1.1

【讨论】:

    猜你喜欢
    • 2018-08-14
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多