2012-02-23 134 views
6

我已經使用很容易皮卡Flask系統開發的應用程序,我已經使用了一個神社模板寫出來一堆鏈接,對應於瓶是頁面的神社變量通過這樣的定義:的燒瓶應用程序根目錄

@app.route(/<var1>/<var2>) 
... 
... 
在測試服務器

這些環節的工作就好了但是當我從測試服務器移到後面的代理,我得到了一個問題,在href鏈接不考慮服務器由我的代理插入額外的目錄名稱。

#where a link should read: 
server:/myapp/<var1>/<var2> 
# it acually puts out: 
server:/<var1>/<var2> 

我的神社etemplate看起來是這樣,但我想知道如果不是放置一個反斜槓有把一個變量指定的根目錄的方式。

{% block navigation %} 
{% for record in db.values() %} 
<li><a href="/{{db.name}}/{{record.name}}">{{record.name}}</a></li> 
{% endfor %} 
{% endblock %} 

任何幫助將不勝感激。感謝Flask團隊!

回答

6

首先,@reclosedev說,你可以生成URL被稱爲myview

<a href="{{ url_for('myview', var1=db.name, var2=record.name) }}"> 

其次,如果你落後反向代理,包WSGI應用程序this decorator更新請求環境,以便Flask生成正確的URL。

+0

感謝亞歷克斯,我確實使用了片段,但我我在模板生成的鏈接並沒有隨着新locations.thanks更新。 – zach 2012-02-23 14:28:32

3

也許你正在尋找url_for功能?使用url_for功能(假設視圖功能

<li><a href="{{ url_for('view_func_name', 
         var1=db.name, 
         var2=record.name) }}">{{record.name}}</a></li> 
+2

此外,如果您背後是一個反向代理,請查看[this flask snippet](http://flask.pocoo.org/snippets/35 /)。 – 2012-02-23 06:37:27

+0

@AlexMorega,大概這片段是OP的問題的解決方案,我想這應該張貼答案。 – reclosedev 2012-02-23 06:46:40

+0

好的,謝謝:) – 2012-02-23 06:58:40