Login

MOVONET

Home Music Blog Group Champion Forum Club

Login | Sign Up| Help

Category:business circle/entertainment circle   Owner python    Members' Amount:11People   Group Status: Public    Create Date:2006-12-31  
  • Is suitable under python the django development minute page function  
  • Posted by python
  • 2007-09-21 14:21:11 
     #coding=gb18030

# minute page function
# parameter list page_no: Current page number sql: The database inquiry sentence (does not contain order the by part page_str: Under current page belt get parameter and value per: Each page record number midnum: Demonstrates how many pages page number



from django.db import connection
import re
import math

def page (page_no=1, sql= '', page_str= '', per=10, midnum=10:
page_no=int(page_no
if page_str> = '':
page_str='? '+str(page_str+'&'
else:
page_str='? '

reobj= re.com pile (r'(? <=select. +? (? =from '
result= reobj.sub ('count(*', sql
cursor = connection.cursor(
cursor.execute(result

row=cursor.fetchone(
if row[0]> =1:
total=row[0]
else:
return 'dff'

page_conunt=total/per+1 # The number of pages counts
page_code='< table>< tr>< td> ' # Minute page form html code

if page_no> =page_conunt:
page_no=page_conunt

next_page=page_no+1
prev_page=page_no-1

offset=math.floor(midnum/2
current_page=page_no

if current_page-offset< =0:
current_page=offset+1

if current_page+offset> page_conunt:
current_page=page_conunt-offset

if current_page-offset >0:
begin=current_page-offset
else:
begin=1

if current_page+offset <page_conunt:
end=current_page+offset
else:
end=page_conunt

if page_conunt==1:
return {'page':'altogether'+str(total+'biresult.'}
else:
page_code+='gong'+ str(page_conunt+'ye, '+str(total+'bi result. </td>< td> '


if page_no> 1:
page_code+='    <a href= " '+str(page_str+'page=1 "> home page< /a>     <a href= " '+page_str+'page='+str(prev_page+'”> « On page< /a> '

for i in range(begin, end+1:
if page_no==i:
page_code+='    <font color=red> '+str(i+'< /font> '
else:
page_code+='    <a href= " '+page_str+'page='+str(i+'”> '+str(i+'< /a> '
if page_no< page_conunt:
page_code+='    <Under a href= " '+page_str+'page='+str(next_page+'>” page » </a>     <a href= " '+page_str+'page='+str(page_conunt+' at the end of”> page< /a> '

page_code+='  </td>< /tr>< /table> '
mbegin=(page_no-1*per
mend=page_no*per

if (mbegin< 0: mbegin=0
if (mend> total: mend=total

sql+=' limit '+str(mend-mbegin+', '+str(mbegin
return {'page':page_code,'sql':sql}

MOKI-COUNT :0 | Views853 | Comments1
  Comments
  • IP :

  • what   
  • 2008-10-13 17:59:17

Verification: 3+8=