#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}