2011-06-14 22 views
5

प्राप्त करें क्या मुख्य() फ़ंक्शन में पिरामिड पूर्ण एप्लिकेशन यूआरएल प्राप्त करने का कोई तरीका है? मैं इसे वैश्विक सेटिंग्स में जोड़ना चाहता हूं, इसलिए इसे हर जगह कहा जा सकता है (टेम्पलेट्स और जेएस फाइलों में)। पिरामिड दस्तावेज़ों में कुछ फ़ंक्शन मदद करेंगे, लेकिन उनमें से सभी को अनुरोध ऑब्जेक्ट की आवश्यकता है और उन्हें एक दृश्य में कॉल करना होगा। धन्यवाद।पिरामिड: एप्लिकेशन पूर्ण यूआरएल

उत्तर

4

पिरामिड (सबसे WSGI अनुप्रयोगों की तरह) के लिए किसी भी डोमेन और यूआरएल उपसर्ग पर रखा जा सकता है। इस प्रकार एप्लिकेशन स्वयं वास्तव में नहीं जानता है कि जब तक आप अपने आवेदन में विशेष रूप से कोड नहीं करते हैं (उदाहरण के लिए, एक आईएनआई सेटिंग)।

यही कारण है कि request.application_url मौजूद है ... क्योंकि APPLICATION_URL आप कितने अलग डोमेन और यूआरएल उपसर्ग है अपने आवेदन करने के लिए अनुरोध कर रहे हैं कि प्रॉक्सी के आधार पर अलग अलग अनुरोध प्रति हो सकता है।

3

मैं सिर्फ मेरे मामले में मेरी सूचकांक मार्ग, 'घर' के लिए पूरा मार्ग मिलता है:

मैं अपने मुख्य आवरण mako टेम्पलेट में इस प्रकार सेट करें जिससे मेरी जे एस कॉल के सभी इसे संदर्भ एक उचित मार्ग का निर्माण कर सकते हैं ajax कॉल/आदि

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

ध्यान दें कि 'request.application_url'' भी उपलब्ध है। मुझे लगता है कि यहां बिंदु यह है कि अनुरोध वस्तु आपके टेम्पलेट्स में उपलब्ध नहीं है, केवल आपके विचारों पर। –

+0

हाँ अनुरोध। Application_url प्रत्येक अनुरोध में मौजूद है, लेकिन मैं अनुरोध वस्तु के बिना एक रास्ता तलाश रहा हूं, या __init__.py में मुख्य() फ़ंक्शन में नकली अनुरोध के साथ। –

संबंधित मुद्दे