webpy没有分页类。按照php的思路。自己编了一个。数据库用的是sqlite。  

class Page(object):
'''分页类'''
def __init__(self,page_size,data_count,page_current):
import math
self.size = page_size
self.data_count = data_count
self.page_current = int(page_current)
self.page_max = int(math.ceil(self.data_count * 0.1 * 10 / self.size )) self.page_current = 1 if self.page_current < 1 else self.page_current
self.page_current = self.page_max if self.page_current > self.page_max else self.page_current self.offset = ( self.page_current - 1) * self.size
def set_url(self,url):
if "?" in url:
f_url = url.split("page")[0]
if "&" in url:
f_url += "&"
else:
f_url = url + "?"
self.url = f_url
def get_html(self):
self.page_pre = self.page_current - 1
self.page_next = self.page_current + 1
if self.page_max in (0,1) :
html = u'''
<span>首页</span>
<span>上一页</span>
<span>下一页</span>
<span>尾页</span>
'''
elif self.page_current <= 1:
html = u'''
<span>首页</span>
<span>上一页</span>
<span><a href="{self.url}page={self.page_next}">下一页</a></span>
<span><a href="{self.url}page={self.page_max}">尾页</a></span>
'''.format(self=self)
elif self.page_current >= self.page_max:
html = u'''
<span><a href="{self.url}page=1">首页</a></span>
<span><a href="{self.url}page={self.page_pre}">上一页</a></span>
<span>下一页</span>
<span>尾页</span>
'''.format(self=self)
else:
html = u'''
<span><a href="{self.url}page=1">首页</a></span>
<span><a href="{self.url}page={self.page_pre}">上一页</a></span>
<span><a href="{self.url}page={self.page_next}">下一页</a></span>
<span><a href="{self.url}page={self.page_max}">尾页</a></span>
'''.format(self=self)
banner = u'''第<span id="spanPageNum">{self.page_current}</span>页/共<span id="spanTotalPage">{self.page_max}</span>页'''.format(self=self)
html = "<div>%s</div>"%(html + banner) if self.data_count > self.size:
return html
else:
return ""

调用:

        page_current = i.get("page",1)

     page_size = 5  #每页显示几条数据
data_count = (db.select("messages",what="count(content) c")[0]["c"]) #总数据量 page = conf.Page(page_size,data_count,page_current)
page.set_url(web.ctx.fullpath)
page_html = page.get_html() data = db.select("messages",order="datetime desc",limit=page.size,offset=page.offset)

上传文件类:

class Upload(object):
u'''文件上传类,接受excel,csv文件''' def __init__(self,upfile):
import os
self.file = upfile
self.file_ext = upfile.filename.split(".")[-1]
self.file_name = upfile.filename.split(".")[-2]
#self.file_path = upfile.filename.replace('\\','/')
def save(self):
'''将文件存入服务器文件夹'''
import os,time
if not self.file_ext in ("xlsx","xls"):
return u"文件类型错误"
try:
os.mkdir(r"static/upload/file_dir/")
save_path = r"static/upload/file_dir/"
except:
save_path = r"static/upload/file_dir/" now = str(time.time()).split(".")[0] try:
with open(save_path+"%s"%(now+"."+self.file_ext),"wb") as f:
f.write(self.file.file.read())
self.filepath = save_path+"%s"%(now+"."+self.file_ext)
except:
pass def get_data(self):
'''返回数据'''
import os
# try:
# import openpyxl
# wb = openpyxl.load_workbook(self.filepath)
# ws = wb.get_sheet_by_name(wb.get_sheet_names()[0])
# data = [[j.value for j in i] for i in ws.rows[2:]]
# return data
# except:
# return "openpyxl is not exists!"
try:
import xlrd
wb = xlrd.open_workbook(self.filepath)
ws = wb.sheet_by_index(0)
data = [ws.row_values(i) for i in range(ws.nrows)][2:]
return data
except:
return "xlrd is not exists!"
finally:
os.remove(self.filepath)
class Upload(object):
u'''文件上传类,接受excel文件''' def __init__(self,upfile):
import os
self.file = upfile
self.file_ext = upfile.filename.split(".")[-1]
self.file_name = upfile.filename.split(".")[-2]
#self.file_path = upfile.filename.replace('\\','/')
def save(self):
'''将文件存入服务器文件夹'''
import os,time
if not self.file_ext in ("xlsx","xls"):
return u"文件类型错误"
try:
os.mkdir(r"static/upload/file_dir/")
save_path = r"static/upload/file_dir/"
except:
save_path = r"static/upload/file_dir/" now = str(time.time()).split(".")[0] try:
with open(save_path+"%s"%(now+"."+self.file_ext),"wb") as f:
f.write(self.file.file.read())
self.filepath = save_path+"%s"%(now+"."+self.file_ext)
except:
pass def get_data(self):
'''返回数据'''
import os
# try:
# import openpyxl
# wb = openpyxl.load_workbook(self.filepath)
# ws = wb.get_sheet_by_name(wb.get_sheet_names()[0])
# data = [[j.value for j in i] for i in ws.rows[2:]]
# return data
# except:
# return "openpyxl is not exists!"
try:
import xlrd
wb = xlrd.open_workbook(self.filepath)
ws = wb.sheet_by_index(0)
data = [ws.row_values(i) for i in range(ws.nrows)][2:]
return data
except:
return "xlrd is not exists!"
finally:
os.remove(self.filepath)

最新文章

  1. [C#] Socket 通讯,一个简单的聊天窗口小程序
  2. FLASH结构
  3. 适合于图像处理方向的SCI期刊杂志列表【转】
  4. linux下一步一步安装禅道项目管理工具
  5. js整理2
  6. prototype
  7. Linux更改服务器Hostname
  8. 发布EWM RF ITS Mobile 相关服务
  9. virtualenv and virtualenvwrapper on Ubuntu 14.04
  10. Valid format values for declare-styleable/attr tags[转]
  11. mysql logstash 配置
  12. [一个经典的多线程同步问题]解决方案三:互斥量Mutex
  13. JVM学习(1)——通过实例总结Java虚拟机的运行机制(转)
  14. 安徽省2016“京胜杯”程序设计大赛_J_YZK的大别墅
  15. web前端性能优化问题
  16. 由源代码编译SpriteBuilder最新版本1.5.0搭配最新的Cocos2D 3.4.9
  17. Python 3 iter函数用法简述
  18. AAC-ADTS
  19. 【Java初探03】——流程控制语句
  20. MongoDB-3.4搭建副本集

热门文章

  1. SortedSet有序集合类型
  2. JSON认识
  3. iOS开发UI篇—UITableview控件简单介绍
  4. 倒计时js代码
  5. SQL Server基本函数
  6. C语言实现快排
  7. H - R(N)
  8. Linux线程-终止
  9. H5版俄罗斯方块(2)---游戏的基本框架和实现
  10. Linux系统下fd分配的方法