Come gli URL riformattare per essere più riposante (da ... /? Id = 123 a ... / 123)?
-
15-10-2019 - |
Domanda
Attualmente ho pagine eventualmente consultati dall'utente tramite:
www.foo.com/details.html?id=123
mi piacerebbe renderli più riposante simile, come ad esempio dal seguente:
www.foo.com/details/123
sto usando Google App Engine. Attualmente l'URL vengono mappati nel file html-mappings
:
('/details.html*', DetailsPage),
E poi il gestore DetailsPage
, si recupera il valore ID
via:
class DetailsPage(webapp.RequestHandler):
def get(self):
announcement_id = self.request.get("id")
Come potrei ristrutturare questo modo che possa mappare l'URL e un estratto l'ID attraverso l'altra in formato URL: www.foo.com/details/123
Grazie
Soluzione
Riscrivere la mappatura URL simile a questo:
('/details/(\d+)', DetailsPage),
(questo richiede che ci sia una parte di uscita del URL che contiene una o più cifre e niente altro).
Quindi modificare il metodo di DetailsPage::get()
ad accettare che il parametro id, come:
class DetailsPage(webapp.RequestHandler):
def get(self, announcement_id):
# next line no longer needed
# announcement_id = self.request.get("id")
... e vai avanti con il codice.