2012-02-23 26 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 %} 

किसी भी मदद की सराहना की जाएगी। धन्यवाद फ्लास्क टीम!

उत्तर

6

सबसे पहले, के रूप में @reclosedev कहा, तुम उत्पन्न कर सकते हैं url_for समारोह (दृश्य समारोह संभालने का उपयोग करके URL myview कहा जाता है:

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

दूसरे, यदि आप एक रिवर्स प्रॉक्सी, चादर के पीछे रहे हैं this decorator के साथ डब्लूएसजीआई एप्लिकेशन जो अनुरोध पर्यावरण को अपडेट करता है ताकि फ्लास्क सही यूआरएल उत्पन्न कर सके।

+0

धन्यवाद एलेक्स, मैं वास्तव में उस स्निपेट का उपयोग कर रहा हूं लेकिन मैं अपने टेम्पलेट में जेनरेट किए गए लिंक नए स्थानों के साथ अपडेट नहीं किया गया था। धन्यवाद। – zach

3

शायद आप url_for फ़ंक्शन देख रहे हैं?

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

इसके अलावा, यदि आप रिवर्स प्रॉक्सी के पीछे हैं, तो [यह फ्लास्क स्निपेट] देखें (http://flask.pocoo.org/snippets/35 /) –

+0

@AlexMorega, शायद यह स्निपेट ओपी की समस्या का समाधान है और मुझे लगता है कि इसे उत्तर के रूप में पोस्ट किया जाना चाहिए। – reclosedev

+0

ठीक है, धन्यवाद :) –

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