分页

 #!/usr/bin/env python
# -*- coding:utf-8 -*- class Pagenation:
def __init__(self,current_page,all_item,base_url,each):
try:
page = int(current_page)
except:
page = 1
if page < 1:
page = 1 all_pager, c = divmod(all_item,each)
if c > 0:
all_pager += 1
self.each=each
self.current_page = page
self.all_pager = all_pager
self.base_url = base_url @property
def start(self):
return (self.current_page - 1) * self.each @property
def end(self):
return self.current_page * self.each def string_pager(self):
list_page = []
if self.all_pager < 11:
s = 1
t = self.all_pager + 1
else: # 总页数大于11
if self.current_page < self.each+1:
s = 1
t = 12
else:
if (self.current_page + 5) < self.all_pager:
s = self.current_page - 5
t = self.current_page + 5 + 1
else:
s = self.all_pager - 11
t = self.all_pager + 1
# 首页
# first = '<a href="/index/1">首页</a>'
# list_page.append(first)
# 上一页
# 当前页 page
if self.current_page == 1:
prev = ''
else:
prev = '<a class="up" href="/index/%s">上一页</a>' % (self.current_page - 1,)
list_page.append(prev)
for p in range(s, t): # 1-11
if p == self.current_page:
temp = '<a class="active" href="/index/%s">%s</a>' % (p, p)
else:
temp = '<a href="/index/%s">%s</a>' % (p, p)
list_page.append(temp)
if self.current_page == self.all_pager:
nex = ''
else:
nex = '<a class="up" href="/index/%s">下一页</a>' % (self.current_page + 1,) list_page.append(nex) # # 尾页
# last = '<a href="/index/%s">尾页</a>' % (self.all_pager,)
# list_page.append(last) # 跳转
# jump = """<input type='text' /><a onclick="Jump('%s',this);">GO</a>""" % ('/index/')
script = """<script>
function Jump(baseUrl,ths){
var val = ths.previousElementSibling.value;
if(val.trim().length>0){
location.href = baseUrl + val;
}
}
</script>"""
# list_page.append(jump)
list_page.append(script)
str_page = "".join(list_page)
return str_page

Session

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
import hashlib
import time CONTAINER = {
"随机字符串":{}
}
# CONTAINER【随机字符串】[is_login ] =delattr() class Session: def __init__(self, handler):
# self.handler.set_secure_cookie
# self.handler.get_secure_cookie
self.handler = handler def __genarate_random_str(self, username):
obj = hashlib.md5()
obj.update(bytes(username + str(time.time()), encoding='utf-8'))
random_str = obj.hexdigest()
return random_str def set_value(self, username, key, value):
"""
在Session中设置值
:param username:
:param key:
:param value:
:return:
"""
# 生成随机字符串,并发送到浏览器 完成
# 本地生成
# {
# 随机字符串: {'is_login' : True}
# }
random_bytes = self.handler.get_secure_cookie("__session__")
if not random_bytes:
random_str = self.__genarate_random_str(username)
self.handler.set_secure_cookie('__session__', random_str)
CONTAINER[random_str] = {}
else:
random_str = str(random_bytes, encoding='utf-8') CONTAINER[random_str][key] = value def get_value(self, key):
"""
在Session中获取值
:param key:
:return:
"""
random_bytes = self.handler.get_secure_cookie("__session__")
if not random_bytes:
return None
else:
random_str = str(random_bytes, encoding='utf-8')
user_info = CONTAINER.get(random_str, None)
if not user_info:
return None
ret = user_info.get(key, None)
return ret

计算时间差,用途,显示几小时前or几天前发布

 #!/usr/bin/env python
# -*- coding:utf-8 -*- import datetime
import time
def gap(old_time):
# old_time为旧的时间戳
now=int(time.time())
gap=now-old_time
time_list=['','','']
if gap>60:
fen, miao = divmod(gap, 60)
if fen>=60:
shi,fen=divmod(fen,60) if shi>=24:
day,shi=divmod(shi,24)
time_list[0]='%d天'%day time_list[1]='%d小时' % shi time_list[2]= '%d分钟' % fen
else:
time_list.append('%d秒' % gap)
print(time_list)
return ''.join(time_list)

python分页和session和计算时间差的更多相关文章

  1. python计算时间差的方法

    本文实例讲述了python计算时间差的方法.分享给大家供大家参考.具体分析如下: 1.问题: 给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年? 2.解决方法: 标准模块date ...

  2. python计算时间差

    前言 之前写代码都是看打印的初始和结束时间然后自己算间隔时间,感觉总是不方便,这不符合python的优雅简洁,于是去寻找简便之道. 方法 time模块计算时间差 import time s_time ...

  3. Android计算时间差

    想要写个根据消耗时长来确定开始结束时间的小工具,发现Android处理时间上有点累,可能是我没找到合适的方法吧,先把我的解决办法贴出来,有好的解决方法还希望提醒一下: 1.根据时间字符串获取毫秒数 p ...

  4. 【转载】c/c++在windows下获取时间和计算时间差的几种方法总结

    一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t time ...

  5. C#计算时间差值

    /// <summary> /// 计算时间差值 /// </summary> /// <param name="DateTime1">< ...

  6. 登录超时自动退出,计算时间差-b

    // 此方法适用于所有被创建过的controller,且当前controller生命周期存在,如有错误的地方望大神斧正 //  说一下我们的需求和实现原理,需求:在点击home键退出但没有滑飞它,5分 ...

  7. js计算时间差,包括计算,天,时,分,秒

    收集两个计算时间差的计算方法代码片段: var date1=new Date(); //开始时间 var date2=new Date(); //结束时间 var date3=date2.getTim ...

  8. Android中计算时间差的实现方法

    今天为“至简天气”增加了一项功能:在启动时根据上次更新数据的时间判断是否有必要更新数据,因为 weather.com.cn 的实况数据貌似是25分钟才会刷新一次,只有在据上次更新的时间达25分钟以上才 ...

  9. Python入门经典. 以解决计算问题为导向的Python编程实践

    Python入门经典. 以解决计算问题为导向的Python编程实践(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1juLsew8UiOErRheQPOuTaw 提取 ...

随机推荐

  1. JavaScript相关图书推荐

    JavaScript语言精粹(修订版) 作      者 Douglas Crockford(道格拉斯·克罗克福德) 著:赵泽欣 等 译 出 版 社 电子工业出版社 出版时间 2012-09-01 版 ...

  2. Memory Cache(内存缓存)

    当Google测试了Google Search服务的可用性后,发现速度是最影响Web应用的可用性的因素之一.相对于作用相同但是速度慢的应用,用户更喜欢速度快的应用.多来年,Google已经掌握了如何使 ...

  3. 关于python的import

    在软件包里,必须添加__init__.py文件. 想要对外公开的module必须在__init__.py内import一次,这样这些module才能被外部代码import并调用.

  4. usb mass storage device

    Problem adding USB host device to KVM Windows guest machine. Status: CLOSED CURRENTRELEASE   Aliases ...

  5. codeforce 630N Forecast

    N. Forecast time limit per test 0.5 seconds memory limit per test 64 megabytes input standard input ...

  6. php-fpm占用系统资源分析

    故障检测 1.别的先不管,先top看一下cpu.ram.swap哪个比较紧张. 由上图分析,可以看出共有602个进程,其中有601个进程休眠了.这好像有点不对劲,内核进程也就80个左右,加上memca ...

  7. C#文件后缀名详解

    C#文件后缀名详解 .sln:解决方案文件,为解决方案资源管理器提供显示管理文件的图形接口所需的信息. .csproj:项目文件,创建应用程序所需的引用.数据连接.文件夹和文件的信息. .aspx:W ...

  8. JQuery要点(一)

    简介: jQuery Mobile 是用于创建移动 Web 应用的前端开发框架. jQuery Mobile 可以应用于智能手机与平板电脑. jQuery Mobile 使用 HTML5 & ...

  9. iOS开发-数据持久化

    iOS中四种最常用的将数据持久存储在iOS文件系统的机制 前三种机制的相同点都是需要找到沙盒里面的Documents的目录路径,附加自己相应的文件名字符串来生成需要的完整路径,再往里面创建.读取.写入 ...

  10. Java模拟登陆【转载】

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...