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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top