2011-06-14 39 views
5

有沒有什麼辦法可以在main()函數中獲取金字塔絕對應用程序url? 我想將其添加到全局設置中,因此可以在每個位置調用它(在模板和js文件中)。 在金字塔文件中有一些功能會有所幫助,但它們都需要一個請求對象,並且必須在視圖中調用。 謝謝。金字塔:獲取應用程序的絕對URL

回答

4

金字塔(最喜歡的WSGI應用程序)可以安裝在任何域和URL前綴。因此,應用程序本身實際上並不知道它負責的URL是什麼,除非您專門將其編碼到應用程序中(例如,INI設置)。

這就是爲什麼request.application_url存在的原因......因爲application_url可能不同每個請求根據您有多少不同的域和url前綴代理請求到您的應用程序。

3

我只是得到我的索引路線,「家」在我的情況下,全路線:

我把這個在我的主包裝Mako的模板,這樣我所有的JS調用可以參考它來構建一條合適的路徑對於Ajax調用的/ etc

<script type="text/javascript" charset="utf-8"> 
     <% 
      app_url = request.route_url('home').rstrip('/') 
     %> 
     APP_URL = '${app_url}'; 
    </script> 
+2

請注意''request.application_url''也可用。我認爲這裏的要點是請求對象在您的模板中可用,而不僅僅是您的視圖。 – 2011-06-15 06:43:35

+0

Yeah request.application_url存在於每個請求中,但我尋找一種不需要請求對象的方式,或者在__init__.py中的main()函數中使用假請求。 – 2011-06-15 08:22:37