燒瓶中的url_for生成器不適用於我的某個視圖(它適用於其他視圖)。發電機給/user/?name=Joe
,而我期望/u/Joe
。燒瓶url_for生成錯誤的URL
在模板中,我試圖讓該URL使用用戶頁面:{{ url_for('user', name = g.user.name) }}
這是對應的視圖功能:
@app.route('/u/<name>')
@login_required
def user(name):
起初,這是工作,但事情發生了轉變。我試圖改變視圖名稱和URL沒有運氣。
有什麼想法?我在這一個茫然......
完整的應用程序可在GitHub上:https://github.com/joehand/weight-and-more-tracker
編輯:該@login_required
裝飾是瓶登錄提供的一個。
此外,刪除<name>
變量不能解決問題。網址就是/user
。
這絕對是導致問題的原因 - Flask默認使用提供給它的函數的__name__來註冊路由。但是,如果提供了兩個具有相同「名稱」的條目,則最後一個條目將獲勝。 [Flask-MongoRest](https://github.com/elasticsales/flask-mongorest/blob/master/flask_mongorest/__init__.py)使用'add_url_rule'向Flask註冊自己 - 並使用'name'關鍵字參數告訴Flask如何註冊它。所以'user'函數被'user' MongoRest類覆蓋。 – 2013-04-10 02:34:19
謝謝!!!這解決了它。我將確保爲API路線使用更具體的名稱。 – joehand 2013-04-10 03:54:57