2015-01-13 65 views
13

我有一個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應該是api

回答

13

由於您希望您的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') 
相關問題