Python CGI: как разбить большой вывод на страницы? - PullRequest
2 голосов
/ 19 сентября 2011

Как мне разбить вывод python-cgi на страницы.структура цикла выборки:

При 1:

if x is true:
   c.execute("select m from n where id=%s")
   gene=c.fetchall()
   print "%s", (gene),
else:
   print "NA"

if y is true:
   c.execute("select p from q where id=%s")
   protein=c.fetchall()
   print "%s", (protein),
else:
   print "NA"

print "\n"

вывод - миллионы строк.Я хочу разбить вывод на страницы .. как 50 строк на странице.Как я могу это сделать?Я ценю вашу помощь.Спасибо.

Ответы [ 2 ]

3 голосов
/ 19 сентября 2011

Грубый набросок, как поступить:

  1. Вы должны кодировать параметр page в свой URL, который указывает: «показать номер страницы page».Это что-то вроде http://xxx.abc.de/genes?page=3, и вам нужно изменить скрипт, чтобы получить этот параметр.Это можно сделать с помощью http://docs.python.org/library/urlparse.html#

  2. Вы должны изменить ваши выборки, чтобы получить элементы page ... page+pagesize-1.MySQL имеет модификатор limit для этого.См. http://dev.mysql.com/doc/refman/5.1/en/select.html

  3. Вам необходимо создать ссылки на своей странице, которые ссылаются на предыдущую страницу и на следующую (если они существуют).Согласно приведенному выше примеру это будет http://xxx.abc.de/genes?page=2 и http://xxx.abc.de/genes?page=4

0 голосов
/ 19 сентября 2011

Использовать выражение "LIMIT offset, limit" sql. Также вы можете буферизовать вывод и записывать данные, разбивая их по страницам (файлам)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...