如何在Google App Engine中的两个处理程序中使用动态网址?

时间:2011-01-15 03:54:54

标签: python google-app-engine 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>""")

感谢您的帮助!

修改

根据djidjadji at app engine group的建议,我改变了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))

所以现在网址是正确的。但你可以帮助文章标题吗?如何从item.title循环内部向for处理程序获取文章标题Article

编辑2

这解决了这个问题。 (Thanks djidjadji

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)))

0 个答案:

没有答案