I'm starting with webapp2. My english is not very good, so i'll use an example to explain my problem: Suppose i'm building an application that will handle cars information.
I've these handlers:
The problem is that i can't build that link to the single view.
I could do this in the template:
<ul>
<li><a href='/cars/view/{{car.id}}'>{{car.model}}</a></li>
</ul>
but don't like that (where's the DRY principle after all?) I was wondering if there's some way to do it similar to django, resolving the URL in the template, like this:
<ul>
<li><a href='{% url cars.view car.id}'>{{car.model}}</a></li>
</ul>
Maybe it's not in the template. I've tryed webapp2.url_for() but didn't help.
Thanks a lot!
webapp2.uri_for() is your best bet, but you must use it in combination with named routing. You can read more about webapp2 routing in combination with uri_for here: http://webapp-improved.appspot.com/guide/routing.html
Here's an example from the above article of how it might look:
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')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With