2011-01-30 92 views
4

任何人都可以指向cursor()的實際應用來做分頁嗎?如何使用cursor()進行分頁?

我不清楚如何使用cursor()documentation中給出的。

這是我的查詢:

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="/vote/%s?type=%s">^</a><a href="%s">%s</a> <span id='Small'>(%s)</span><br /> 
     <div id='Small'> 
     %s points %s by %s <a href="/item/%s"></a> | 
     <a href="/item/%s#disqus_thread"></a></div> 
     </li><br /> """ % 
     (str(item.key().id()), merchandise_type, item.url, item.title, urlparse(item.url).netloc, 
     item.points, item.date.strftime("%B %d, %Y %I:%M%p"), item.user_who_liked_this_item, str(item.key().id()), str(item.key().id())))        

    self.response.out.write("</ol>") 

謝謝!

UPDATE

阿米爾您好:感謝您的回答,但我便無法使這個鏈接工作。下面是我有:

#===========adding cursor here===========# 
      cursor = self.request.get("cursor") 
      if cursor: query.with_cursor(cursor) 
      items = query.fetch(30) 
      cursor = query.cursor() 

#===========adding cursor here===========# 

#===========regular output===========# 
      self.response.out.write("<ol>") 
      for item in items: 
       self.response.out.write("""<li> 
       <a href="/vote/%s?type=%s">^</a><a href="%s"> 
       <span id="large">%s</span></a> 
       <span id='Small'>(%s)</span> 
       <br /> 
       %s<br /> <span id='Small'> 
       %s points %s by %s <a href="/item/%s"></a> | 
       <a href="/item/%s#disqus_thread"></a> 
       </span> 
       </li><br /> """ %   
       (str(item.key().id()), merchandise_type, item.url, 
       item.title, urlparse(item.url).netloc, 
       item.summary, item.points, item.date.strftime("%B %d, %Y %I:%M%p"), 
       item.user_who_liked_this_item, str(item.key().id()), 
       str(item.key().id())))        

      self.response.out.write("</ol>") 
#===========regular output===========# 

#===========link to cursor===========# 
      self.response.out.write("""<a href="/dir?type=%s?cursor=%s">Next 
      Page</a>""" % (merchandise_type, cursor)) 

但是這導致了這個網址,顯示什麼:

http://localhost:8083/dir?type=newest?cursor=E9oBdgoTc2FyYWgtZm9yLXByZXNpZGVudBoESXRlbUtSBGRhdGVYAkwhQ1VSU09SIWoiahNzYXJhaC1mb3ItcHJlc2lkZW50cgsLEgRJdGVtGKsCDHIVCAcaBGRhdGUgACoJCMid8OXW4qYCggELCxIESXRlbRirAgzgAQAU 

更新2

下面

見@Amir評論:改變第二?&解決問題。謝謝!

回答

7

這裏有一個簡單的例子,讓你開始...

query = db.GqlQuery("SELECT * FROM Item ORDER BY date DESC") 
cursor = self.request.get('cursor') 
if cursor: query.with_cursor(cursor) 
items = query.fetch(30) 
cursor = query.cursor() 

... your regular output ... 

self.response.out.write('<a href="yoururl?cursor=%s">Next Page</a>' % cursor) 
+0

關於如何使「上一頁」鏈接任何想法? :D – 2011-01-30 20:40:43