ジャンゴが組み込まれているページング、関数は非常に包括的、私のアプリケーションシナリオには適していませんが、それは離れて感謝取らないコードを書くことです!
アプリケーションシナリオ:
1は、好ましくは、Djangoに使用されています
どのように使用するには:
データ(データのquessetタイプは、パスをステッチ、ページにジャンプします)辞書リターンを返すにはなぜ私が使用して短期間のための辞書?ダイレクトリターン便利なフロントエンド、そしてあなたがそれを変更することができ、他のニーズがある場合
ここで使用する:直接参照}}、{{負荷
レンダリング:
ドラマを使用してページバラ色の効果、スタイルの背後にある罰金はありませんが、私はそれについての専門的な、あなたの曲ではありませんよ
1 "" " 2 ファンクションコール)は(my_html開始される 3つの。 パラメータが必要とされている 4。 PARAMのQUE:データ型querryset 。5 new_num_page:ページ番号にジャンプ 6。 HREF:ステッチパス 。7 。8 。9 " "" 10 DEF HTML (new_lis、new_num_pageは、PAGE_NUM、HREF) 。11 "" " 12は :PARAM new_lis: 13である :PARAMのnew_num_page: 14 :PAGE_NUM PARAM 15 :このような接合のhref :?到来パスをPARAMとして/ custorm /ページ= 16 :リターン: 。17 "" " 18は page_html = "" 19 page_pre_html = F「<NAV ARIA-ラベル= "ページナビゲーション"> <ulのクラス= "改ページ"> <LI> <a href="{href}1" aria-label="Previous"> <スパンARIA-隠さ=" true"を>首页</ span>を</a>の</ LI> <LI> <aのhref="{href}{new_num_page-1}" aria-label="Previous"> <スパンARIA-隠さ= "真の">&LAQUO ; </スパン> </a>の</ LI> ' 20 page_html + = page_pre_html 21 用 I でnew_lis: 22 であれば、I == STR(new_num_page): 23 + = F page_html ' <LI> <HREF = "{ HREF} {I}」スタイル= "色:赤"> {I} </a>の</ LI> ' 24 他: 25 page_html + = F ' <LI> <a href="{href}{i}"> {I} </a>の</ LI>' 26 27 pagenum_html = F ' <LI> <a href="{href}{new_num_page + 1}" aria-label="Next"> <スパンARIA-隠れ= "真">表示&raquo; </スパン> </ > </ LI> <LI> <a href="{href}{page_num}" aria-label="pattern"> <スパンARIA-隠さ= "真">尾页</ span>の</a>の< / LI> <LI> <スパンARIA-隠さ= "真の"> <フォームアクション= ""メソッド= "GET">の<input type = "text"スタイル= "幅:80px;高さ:18px;" プレースホルダ= "共:{PAGE_NUM}页" NAME = "ページ">の<input type = "提出"スタイル= "幅:80px;高さ:18px;" 値= "跳转"> </ FORM> </ LI> </ UL> </ NAV> ' my_html(QUE、new_num_page、HREF、page_max_piece = 10、page_tag_num = 5):#1 のparam QUE:データnew_num_pageのquerry型:新しいページのHREF:パスステッチ 33がある " "" 34は :PARAMのQUE:querryタイプデータ 35 :PARAMのnew_num_page:新しいページ 36 HREF:ステッチパス 37 :PARAMのpage_max_piece:ページの最大数を表示 38は :PARAMのpage_tag_num:表示されたページのページ数は、好ましくは、奇数は容易に変更されていない 39 :リターン:返す良いスライス辞書を運びますquerry HTMLページと前段によって直接戻すことができる 40 "" " 41である all_data_count = ()que.count 42は 、RESID = divmod(all_data_count、page_max_piece)PAGE_NUM #の商と余り 43で IF RESID。 44 PAGE_NUM + = 1 #拿到了总页数 45 page_all_lis = [STR(I)のために I における範囲(1、PAGE_NUM + 1 )] 46 であれば new_num_page でpage_all_lis: 47 new_num_page = INT(new_num_page) 48 なら new_num_page> 2 及び new_num_page <PAGE_NUM - 1 : 49 RET = HTML(page_all_lis [new_num_page-3:new_num_page + 2 ]、new_num_page、PAGE_NUM、HREF) 50 のelif new_num_page <= page_tag_num: 51 RET =HTML(page_all_lis [0:page_tag_num]、new_num_page、PAGE_NUM、HREF) 52 のelif new_num_page> PAGE_NUM-2 : 53 RET = HTML(page_all_lis [page_num- page_tag_num:PAGE_NUM]、new_num_page、PAGE_NUM、HREF) 54 リターン { " QUE "。 QUE [(new_num_page - 1)* page_max_piece:new_num_page * page_max_piece]、" new_html " :RET} 55 他: 56 = 1 new_num_page 57 RET = :HTML(new_num_page、PAGE_NUM、HREF page_all_lis [page_tag_num 0]) 58 リターン { " QUE":QUE [(new_num_page - 1)* page_max_piece:new_num_pageの*のpage_max_piece]、" new_html 」:RET}