2013-07-10 72 views
4

我試圖使用燒瓶的子域參數,但有一些麻煩。燒瓶子域變量未捕獲,其他路由404

我將本地/ etc/hosts /文件配置爲指向example.com和blog.example.com爲127.0.0.1。

對於'index'路由,當我瀏覽到http://blog.example.com:5000時,子域參數不會被捕獲。當我嘗試打印var時,它會打印「var is」。

'login'路線404s,但我不明白爲什麼。任何幫助將不勝感激!

from flask import Flask 

app = Flask(__name__) 
app.debug=True 
app.config['SERVER_NAME'] = 'example.com' 


# prints "var is <invalid>" 
@app.route('/', subdomain="<var>", methods=['GET']) 
def index(var): 
    print "var is %s" % var 
    return "Hello World %s" % var 

# This 404s 
@app.route('/login/', methods=['GET']) 
def login(): 
    return "Login Here!" 

if __name__ == '__main__': 
    app.run(host='example.com', debug=True) 

回答

3

您需要在您的SERVER_NAME配置的端口號。

app.config['SERVER_NAME'] = 'example.com:5000' 

應該解決它。

+1

這是有效的,但現在它的404s的索引路線,當我不使用子域。這是它應該如何工作? – Raj

+0

澄清:我希望單個路由可以選擇處理子域的請求。因此,用戶可以瀏覽http://blog.example.com/post/123或http://example.com/blog/post/123這可能沒有重複一堆代碼? – Raj

+1

想通了!只需要添加另一個路由裝飾器,如下所示:@ app.route('/',methods = ['GET']) – Raj