python分页和session和计算时间差
分页
#!/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和计算时间差的更多相关文章
- python计算时间差的方法
本文实例讲述了python计算时间差的方法.分享给大家供大家参考.具体分析如下: 1.问题: 给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年? 2.解决方法: 标准模块date ...
- python计算时间差
前言 之前写代码都是看打印的初始和结束时间然后自己算间隔时间,感觉总是不方便,这不符合python的优雅简洁,于是去寻找简便之道. 方法 time模块计算时间差 import time s_time ...
- Android计算时间差
想要写个根据消耗时长来确定开始结束时间的小工具,发现Android处理时间上有点累,可能是我没找到合适的方法吧,先把我的解决办法贴出来,有好的解决方法还希望提醒一下: 1.根据时间字符串获取毫秒数 p ...
- 【转载】c/c++在windows下获取时间和计算时间差的几种方法总结
一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t time ...
- C#计算时间差值
/// <summary> /// 计算时间差值 /// </summary> /// <param name="DateTime1">< ...
- 登录超时自动退出,计算时间差-b
// 此方法适用于所有被创建过的controller,且当前controller生命周期存在,如有错误的地方望大神斧正 // 说一下我们的需求和实现原理,需求:在点击home键退出但没有滑飞它,5分 ...
- js计算时间差,包括计算,天,时,分,秒
收集两个计算时间差的计算方法代码片段: var date1=new Date(); //开始时间 var date2=new Date(); //结束时间 var date3=date2.getTim ...
- Android中计算时间差的实现方法
今天为“至简天气”增加了一项功能:在启动时根据上次更新数据的时间判断是否有必要更新数据,因为 weather.com.cn 的实况数据貌似是25分钟才会刷新一次,只有在据上次更新的时间达25分钟以上才 ...
- Python入门经典. 以解决计算问题为导向的Python编程实践
Python入门经典. 以解决计算问题为导向的Python编程实践(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1juLsew8UiOErRheQPOuTaw 提取 ...
随机推荐
- bzoj 2502 清理雪道(有源汇的上下界最小流)
[题意] 有一个DAG,要求每条边必须经过一次,求最少经过次数. [思路] 有上下界的最小流. 边的下界为1,上界为无穷.构造可行流模型,先不加ts边跑一遍最大流,然后加上t->s的inf边跑 ...
- linux内核地址mapping
linux内核采用页式存储管理,虚拟地址空间划分成固定大小的页面,由MMU(memory manager unit)在运行时将virtual address mapping to (或者说是变化成)某 ...
- homework-03
1.分工准备 这次的工作是结对编程,在第二次作业中我是使用python完成的作业,而小明是使用C完成的作业.因为打算使用动态链接库的方式将第二次的代码嵌入到本次的作业中,而python生成动态链接库不 ...
- Cannot retrieve metalink for repository: epel. Please verify its path and try again
今天在测试环境使用yum安装,遇到一个问题: Error: Cannot retrieve metalink for repository: epel. Please verify its path ...
- Light oj 1138 - Trailing Zeroes (III) (二分)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1138 题目就是给你一个数表示N!结果后面的0的个数,然后让你求出最小的N. 我们可以知 ...
- HDU 1796How many integers can you find(简单容斥定理)
How many integers can you find Time Limit: 12000/5000 MS (Java/Others) Memory Limit: 65536/32768 ...
- CSS构造超链接
超链接边框 派生超链接 属性选择器超链接 动态超链接 图像翻转超链接 CSS工具提示 1.给链接加上边框 A:link { Color: #f00; Text- ...
- TypeScript学习笔记(七):模块
JavaScript中的模块 在学习TypeScript的模块之前我们先看看在JavaScript中的模块是如何实现的. 模块的好处 首先我们要了解使用模块的好处都有什么? 模块化.可重用: 封装变量 ...
- Centos7安装Docker Engine
一.先决条件 首选需要一个64位操作系统和3.10或者更版本的内核. 查看当前内核版本: $ uname -r -.el7.x86_64 二.yum安装Docker Engine 安装Docker E ...
- JavaEE通过response实现请求重定向
请求重定向指的是一个web资源收到客户端请求后,通知客户端去访问另外一个web资源,这称之为请求重定向.302状态码和location头即可实现重定向. 请求重定向最常见的应用场景就是用户登录. 下面 ...