페이지 템플릿 :
클래스 페이지 매김 (객체) : DEF __init__ (자체, CURRENT_PAGE, ALL_COUNT은, per_page_num = 2, pager_count = 11. ) : "" " 패키지 탭 데이터 : PARAM 중 CURRENT_PAGE :이 페이지 : PARAM ALL_COUNT : 데이터베이스 줄무늬의 총 수 : PARAM 페이지 당 데이터의 수가 표시된다 per_page_num : PARAM pager_count : 표시 페이지 번호까지 사용 : 검색어 세트 model.objects.all = () page_obj = 매김 (CURRENT_PAGE, ALL_COUNT이다) page_data = 검색어 세트 [page_obj.start : page_obj.end] 대신 원래 page_data를 사용하여 데이터를 획득하는 검색어 세트 page_obj.page_html와 전면 탭 스타일 검색 "" " 은 try : CURRENT_PAGE =을INT (CURRENT_PAGE) 을 제외한 예로서 예외 : CURRENT_PAGE = 1 의 경우 CURRENT_PAGE <1 : CURRENT_PAGE = 1 self.current_page = CURRENT_PAGE self.all_count = ALL_COUNT self.per_page_num = per_page_num # 总页码 all_pager, TMP = divmod (ALL_COUNT, per_page_num) 경우 TMP : all_pager + = 1 self.all_pager = all_pager self.pager_count = pager_count self.pager_count_half = INT ((pager_count - 1) / 2. ) @Property DEF 시작 (자기) : 리턴 (. self.current_page - 1) * self.per_page_num @Property DEF 끝 (자동) : 리턴 self.current_page * self.per_page_num DEF의 page_html (자기) : # 경우 총 p <11 : IF self.all_pager <= self.pager_count : pager_start . = 1 pager_end . self.all_pager = 1 + # 총 P> 11. 다른 : # 이 페이지에 있다면 <= 페이지 페이지 번호를 표시 11/2 만약 <= self.current_page : self.pager_count_half pager_start = 1 pager_end = self.pager_count + 1 # 当前页大于5 다른 : # 页码翻到最后경우 (self.current_page self.pager_count_half +)> self.all_pager : pager_end = 자체 .all_pager + 1 pager_start = self.all_pager - self.pager_count + 1 다른 : pager_start = self.current_page을 - self.pager_count_half의 pager_end self.current_page + = + 1 self.pager_count_half page_html_list = [] # 添加前面的탐색和UL标签 page_html_list.append ( '' ' <탐색 아리아 라벨 ='페이지 네비게이션> ' <UL 등급 ='페이징 '> ' ' ) FIRST_PAGE = ' <LI> <A href="?page=%s">首页</A> </ 리> ' % (1 ) page_html_list.append (FIRST_PAGE) 경우 self.current_page <= 1 : prev_page = ' <리 클래스 = "비활성화"> <A HREF = "# "> 이전 </A> </ 리> ' 다른 사람의 : prev_page = ' <LI> <A href="?page=%s">上一页</A> </ 리> ' % (self.current_page - 1 ) page_html_list.append (prev_page) 에 대한 I 의 범위 ( pager_start, pager_end) 경우 나 == : self.current_page 온도 = ' <LI 클래스 = "활성"> <A href="?page=%s"> % S </A> </ 리> ' % (I 난) 다른 : 온도 = ' <LI> <A href="?page=%s"> % S </A> </ 리> '% (I, I,) page_html_list.append (TEMP) 만약self.current_page> = </ NAV>self.all_pager : next_page = ' <리 클래스 = "비활성화"> <a보기 </a>下一页</A> </ 리> ' 다른 : next_page = ' <LI> <A HREF = "페이지? S = % ">下一页</A> </ 리> ' % (self.current_page + 1 ) page_html_list.append (next_page) LAST_PAGE = ' <LI> <A href="?page=%s">尾页</A> </ 리> ' % (self.all_pager) page_html_list.append (LAST_PAGE) # 尾部添加标签 page_html_list.append ( ' ' </ UL> '' ' ) 반환 '' .join (page_html_list)