Как использовать динамический URL в двух обработчиках в Google App Engine? - PullRequest
1 голос
/ 15 января 2011

Как мне взять этот URL

<a href="/item?id=%s"> 

из этого обработчика

class Newest(webapp.RequestHandler):
    def get(self):
            items = db.GqlQuery("SELECT * FROM Item ORDER BY date DESC LIMIT 30")

        self.response.out.write("<ol>")
        for item in items:
            self.response.out.write("""<li><a href="%s">%s</a> <br /><a href="/item?id=%s">comments</a></li><br /> """ % 
                                    (cgi.escape(item.url), cgi.escape(item.title), cgi.escape(str(item.key().id()))))
        self.response.out.write("</ol>")

и используйте его в этом обработчике

class Item(webapp.RequestHandler):
    def get(self):
        self.response.out.write("""<p>Article title and link goes here</p>""")

Спасибо за вашу помощь!

EDIT

Как подсказал djidjadji в группе движков приложения Я изменил url следующим образом:

class Newest(webapp.RequestHandler):
    def get(self):
        items = db.GqlQuery("SELECT * FROM Item ORDER BY date DESC LIMIT 30")
        self.response.out.write("<ol>")
        for item in items:
            self.response.out.write("""<li><a href="%s">%s</a> <br /><a href="/item/%s"><span style="color: #808080; font-size: x-small;">comments</span></a></li><br /> """ % 
                                    (cgi.escape(item.url), cgi.escape(item.title), cgi.escape(str(item.key().id()))))
        self.response.out.write("</ol>")
        self.response.out.write("</div></body></html>")
Обработчик

и Article такой:

class Article(webapp.RequestHandler):
    def get(self, id):
        id = int(id)        
        self.response.out.write("""<a href="/item/%s">article title</a> """ % 
                                    (id))

Так что теперь URL-адрес правильный. Но вы можете помочь с названием статьи? Как получить заголовок статьи item.title из цикла for в обработчик Article?

РЕДАКТИРОВАТЬ 2

Это решает проблему. ( Спасибо, Джиджаджи )

class Article(webapp.RequestHandler):
    def get(self, id):
        id = int(id)
        item = Item.get_by_id(id)

        self.response.out.write("""<a href="%s">%s</a> """ % 
                                    (cgi.escape(item.url), cgi.escape(item.title)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...