我有一个在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}}。
答案 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')