2012-01-13 4 views
5

मैं webapp2 से शुरू कर रहा हूं। मेरी अंग्रेजी बहुत अच्छी नहीं है, इसलिए मैं अपनी समस्या को समझाने के लिए उदाहरण का उपयोग करूंगा: मान लीजिए कि मैं एक ऐसा एप्लिकेशन बना रहा हूं जो कारों की जानकारी को संभालेगा।webapp2 - टेम्पलेट्स में यूआरएल को कैसे उलटा करें?

  • ViewHandler: अपनी जानकारी के सभी के साथ एक एकल कार के लिए एक देखने के लिए, प्रदर्शित करेगा (इंजन, साल, ब्रांड, मॉडल, आदि ..)
  • ListHandler

    मैं इन संचालकों है : दृश्य पृष्ठ पर लिंक के साथ, एप्लिकेशन में सभी कारों को प्रदर्शित करेगा।

समस्या यह है कि मैं एक ही दृश्य को उस लिंक को नहीं बना सकता। वहाँ किसी तरह यह django के समान करना है अगर

<ul> 
    <li><a href='/cars/view/{{car.id}}'>{{car.model}}</a></li> 
</ul> 

लेकिन वह पसंद नहीं मैं सोच रहा था, :

मैं टेम्पलेट में ऐसा कर सकता है (जहां सभी के बाद सूखी सिद्धांत है?) टेम्पलेट में यूआरएल को हल करना, इस तरह:

<ul> 
    <li><a href='{% url cars.view car.id}'>{{car.model}}</a></li> 
</ul> 

शायद यह टेम्पलेट में नहीं है। मैंने webapp2.url_for() लेकिन को आजमाया नहीं है।

बहुत बहुत धन्यवाद!

+2

आप का उपयोग कर webapp2 + jinja2 इसके पहले से ही stackoverflow में जवाब दे: http://stackoverflow.com/questions/7081250/webapp2-jinja2-how-can-i-get-uri-for-working-in-jinja2-views – gmunkhbaatarmn

+0

मैं जिंजा का उपयोग नहीं कर रहा हूं, लेकिन मैं एक नज़र डालेगा और शायद बदल सकते हैं। धन्यवाद। – santiagobasulto

उत्तर

8

webapp2.uri_for() आपकी सबसे अच्छी शर्त है, लेकिन आपको इसे नामित रूटिंग के संयोजन में उपयोग करना होगा। आप यहाँ uri_for के साथ संयोजन में webapp2 मार्ग के बारे में अधिक पढ़ सकते हैं: http://webapp-improved.appspot.com/guide/routing.html

यहाँ यह कैसे लग सकता है उपरोक्त लेख से एक उदाहरण है:

app = webapp2.WSGIApplication([ 
    webapp2.Route('/', handler='handlers.HomeHandler', name='home'), 
    webapp2.Route('/wiki', handler=WikiHandler, name='wiki'), 
    webapp2.Route('/wiki/<page>', handler=WikiHandler, name='wiki-page'), 
]) 

#/
uri = uri_for('home') 

# http://localhost:8080/ 
uri = uri_for('home', _full=True) 

# /wiki 
uri = uri_for('wiki') 

# http://localhost:8080/wiki 
uri = uri_for('wiki', _full=True) 

# http://localhost:8080/wiki#my-heading 
uri = uri_for('wiki', _full=True, _fragment='my-heading') 

# /wiki/my-first-page 
uri = uri_for('wiki-page', page='my-first-page') 

# /wiki/my-first-page?format=atom 
uri = uri_for('wiki-page', page='my-first-page', format='atom') 
+0

डॉक्स लिंक बदल गया है http://webapp2.readthedocs.io/en/latest/guide/routing.html – igniteflow

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