장고 호출기 템플릿

페이지 템플릿 :

 

클래스 페이지 매김 (객체) :
     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)

 

추천

출처www.cnblogs.com/xt12321/p/11025055.html