17

我有一个在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 如下所示:

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

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

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

4

1 回答 1

17

由于您希望 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')
于 2015-01-16T16:54:49.303 回答