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

时间:2015-01-13 04:31:51

标签: python flask-restful flask

我有一个在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')

网址如下所示:

我想将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之外的所有蓝图的默认子域名。{/ 1}}。

1 个答案:

答案 0 :(得分:14)

由于您希望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')