分页

 #!/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. WeChat Official Account Admin Platform Message API Guide

    Keyword: WeChat Message API Text Image Location Link Event Music RichMedia Author: PondBay Studio[We ...

  2. wireshark http过程

    一直研究lighttpd源码,顺便看下网络编程,不说太多,开始吧 第一步 设置wireshark过滤规则 tcp.port eq 81 ,然后开始捕捉 第二步  http://183.61.16.16 ...

  3. 一起刷LeetCode3-Longest Substring With Repeating Characters

    拖延症太严重了TAT,真心要处理一下这个问题了,感觉很不好! --------------------------------------------------------------------- ...

  4. Trail: JDBC(TM) Database Access(2)

    package com.oracle.tutorial.jdbc; import java.sql.CallableStatement; import java.sql.Connection; imp ...

  5. 快速开发 jQuery 插件的 10 大技巧(转)

    转自:http://www.oschina.net/news/41776/jquery-10-tips 在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模 ...

  6. AspNetPager 的使用

    下面选用的是新闻发布系统里用的代码. SQL 存储过程: CREATE PROCEDURE procNewsSelectByPager @startRecordIndex int, @endRecor ...

  7. PhoneGap搭建运行环境(3.2版本)

    一. 1.准备环境nodejs(http://nodejs.org/download/) 2.ant(http://ant.apache.org/bindownload.cgi) 3.Android ...

  8. 搭建Titanium开发环境

    轻松制作 App 再也不是梦! Titanium Mobile 让你能够使用你所熟悉的 web 技术,制作出如同使用Objective-C 或 Java 写出的 Native App. 除了有多达三百 ...

  9. Android View事件传递机制

    ViewGroup dispatchTouchEvent onInterceptTouchEvent onTouch View dispatchTouchEvent onTouch 假设View的层级 ...

  10. JSF 2 hidden value example

    In JSF, you can use the <h:inputHidden /> tag to render a HTML hidden value field. For example ...