如何在 Flask 中设置不同的子域(使用蓝图)?

How to setup different subdomains in Flask (using blueprints)?

我在 https://app.mydomain.com 有一个 Flask 应用程序 运行。

蓝图是这样的:

app.register_blueprint(main)
app.register_blueprint(account, url_prefix='/account')
app.register_blueprint(users, url_prefix='/users')
app.register_blueprint(boxes, url_prefix='/boxes')
app.register_blueprint(api_1_0, url_prefix='/api/v1.0')

URL 如下所示:

我想从https://app.mydomain.com/api/v1.0 to https://api.mydomain.com移动api_1_0路由,我应该如何修改路由以及如何设置app.config['SERVER_NAME']

example.com(没有任何子域)完全是另一个站点,否则我会摆脱 app 子域。

所以,我希望 app 成为所有蓝图的默认子域,除了 api_1_0 应该是 api.

由于您希望 Flask 应用程序处理多个子域,因此应将 app.config['SERVER_NAME'] 设置为根域。然后将 app 应用为默认子域并在 api 蓝图注册中覆盖它。

我想这样做的方法是这样的:

app.config['SERVER_NAME'] = 'mydomain.com'
app.url_map.default_subdomain = "app"
app.register_blueprint(account, url_prefix='/account')
app.register_blueprint(users, url_prefix='/users')
app.register_blueprint(boxes, url_prefix='/boxes')
app.register_blueprint(api_1_0, subdomain='api')