升级到 Flask 3.1.0 后出现与 SERVER_NAME 相关的 Flask 错误

问题描述 投票:0回答:1

我的应用程序使用子域(每个登录用户都有自己的:user.domain.com)和没有子域的蓝图。

到目前为止我还没有设置subdomain_matching并且我设置了 SERVER_NAME =“domain.com”和 SESSION_COOKIE_DOMAIN =“.domain.com”。

从 3.0.3 升级到 Flask 3.1.0 后,应用程序不再工作,并且请求的每个 url 都会出现 404 错误(但错误页面已正确加载)。

如果我从路由中删除“子域名”参数,则 www.domain.com 可以正常工作,但我无法获取 username.domain.com。

我在 Flask 文档“更改”部分中看到 3.1.0 中有关 SERVER_NAME 的内容发生了变化,但我无法理解,无论是阅读 #5553,必须如何设置此参数才能使子域正常工作。

python flask
1个回答
0
投票

解决方案似乎很简单:必须启用subdomain_matching

app = Flask(__name__, subdomain_matching=True)

IMO 的问题是,目前 Flask 文档对此还不太清楚。

特别是文档引用:

SERVER_NAME “如果启用了 subdomain_matching,则必须设置,以便能够从请求中提取子域。

但我找不到它明确指出从 3.1.0 开始单独设置 SERVER_NAME 不再激活 sudomain_matching 的地方。

© www.soinside.com 2019 - 2024. All rights reserved.