Pregunta

Estoy comenzando con WebApp2. Mi inglés no es muy bueno, así que usaré un ejemplo para explicar mi problema: supongo que estoy construyendo una aplicación que manejará la información de los automóviles.

Tengo estos manejadores:

  • ViewHandler: mostrará una vista para un solo automóvil, con toda su información (motor, año, marca, modelo, etc.)
  • Listhandler: mostrará todos los autos en la aplicación, con un enlace a la página Ver.

El problema es que no puedo construir ese enlace a la vista única.

Podría hacer esto en la plantilla:

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

Pero no me gusta (¿dónde está el principio seco después de todo?) Me preguntaba si hay alguna forma de hacerlo similar a Django, resolviendo la URL en la plantilla, como esta:

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

Tal vez no está en la plantilla. He probado webApp2.URL_FOR () pero no ayudó.

¡Muchas gracias!

¿Fue útil?

Solución

WebApp2.uri_for () es su mejor opción, pero debe usarla en combinación con enrutamiento con nombre. Puede leer más sobre el enrutamiento WebApp2 en combinación con Uri_For aquí:http://webapp-improved.appspot.com/guide/routing.html

Aquí hay un ejemplo del artículo anterior de cómo podría verse:

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')
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top