• python分页和session和计算时间差


    分页

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 
     4 class Pagenation:
     5     def __init__(self,current_page,all_item,base_url,each):
     6         try:
     7             page = int(current_page)
     8         except:
     9             page = 1
    10         if page < 1:
    11             page = 1
    12 
    13         all_pager, c = divmod(all_item,each)
    14         if c > 0:
    15             all_pager += 1
    16         self.each=each
    17         self.current_page = page
    18         self.all_pager = all_pager
    19         self.base_url = base_url
    20 
    21     @property
    22     def start(self):
    23         return (self.current_page - 1) * self.each
    24 
    25     @property
    26     def end(self):
    27         return self.current_page * self.each
    28 
    29     def string_pager(self):
    30         list_page = []
    31         if self.all_pager < 11:
    32             s = 1
    33             t = self.all_pager + 1
    34         else:  # 总页数大于11
    35             if self.current_page < self.each+1:
    36                 s = 1
    37                 t = 12
    38             else:
    39                 if (self.current_page + 5) < self.all_pager:
    40                     s = self.current_page - 5
    41                     t = self.current_page + 5 + 1
    42                 else:
    43                     s = self.all_pager - 11
    44                     t = self.all_pager + 1
    45         # 首页
    46         # first = '<a href="/index/1">首页</a>'
    47         # list_page.append(first)
    48         # 上一页
    49         # 当前页 page
    50         if self.current_page == 1:
    51             prev = ''
    52         else:
    53             prev = '<a class="up" href="/index/%s">上一页</a>' % (self.current_page - 1,)
    54         list_page.append(prev)
    55         for p in range(s, t):  # 1-11
    56             if p == self.current_page:
    57                 temp = '<a class="active" href="/index/%s">%s</a>' % (p, p)
    58             else:
    59                 temp = '<a href="/index/%s">%s</a>' % (p, p)
    60             list_page.append(temp)
    61         if self.current_page == self.all_pager:
    62             nex = ''
    63         else:
    64             nex = '<a  class="up" href="/index/%s">下一页</a>' % (self.current_page + 1,)
    65 
    66         list_page.append(nex)
    67 
    68         # # 尾页
    69         # last = '<a href="/index/%s">尾页</a>' % (self.all_pager,)
    70         # list_page.append(last)
    71 
    72         # 跳转
    73         # jump = """<input type='text' /><a onclick="Jump('%s',this);">GO</a>""" % ('/index/')
    74         script = """<script>
    75             function Jump(baseUrl,ths){
    76                 var val = ths.previousElementSibling.value;
    77                 if(val.trim().length>0){
    78                     location.href = baseUrl + val;
    79                 }
    80             }
    81             </script>"""
    82         # list_page.append(jump)
    83         list_page.append(script)
    84         str_page = "".join(list_page)
    85         return str_page
    View Code

    Session

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 import hashlib
     4 import time
     5 
     6 CONTAINER = {
     7     "随机字符串":{}
     8 }
     9 # CONTAINER【随机字符串】[is_login ] =delattr()
    10 
    11 class Session:
    12 
    13     def __init__(self, handler):
    14         # self.handler.set_secure_cookie
    15         # self.handler.get_secure_cookie
    16         self.handler = handler
    17 
    18     def __genarate_random_str(self, username):
    19         obj = hashlib.md5()
    20         obj.update(bytes(username + str(time.time()), encoding='utf-8'))
    21         random_str = obj.hexdigest()
    22         return random_str
    23 
    24     def set_value(self, username, key, value):
    25         """
    26         在Session中设置值
    27         :param username:
    28         :param key:
    29         :param value:
    30         :return:
    31         """
    32         # 生成随机字符串,并发送到浏览器 完成
    33         # 本地生成
    34         # {
    35         #     随机字符串: {'is_login' : True}
    36         # }
    37         random_bytes = self.handler.get_secure_cookie("__session__")
    38         if not random_bytes:
    39             random_str = self.__genarate_random_str(username)
    40             self.handler.set_secure_cookie('__session__', random_str)
    41             CONTAINER[random_str] = {}
    42         else:
    43             random_str = str(random_bytes, encoding='utf-8')
    44 
    45         CONTAINER[random_str][key] = value
    46 
    47     def get_value(self, key):
    48         """
    49         在Session中获取值
    50         :param key:
    51         :return:
    52         """
    53         random_bytes = self.handler.get_secure_cookie("__session__")
    54         if not random_bytes:
    55             return None
    56         else:
    57             random_str = str(random_bytes, encoding='utf-8')
    58         user_info = CONTAINER.get(random_str, None)
    59         if not user_info:
    60             return None
    61         ret = user_info.get(key, None)
    62         return ret
    View Code

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

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 
     4 import datetime
     5 import time
     6 def gap(old_time):
     7     # old_time为旧的时间戳
     8     now=int(time.time())
     9     gap=now-old_time
    10     time_list=['','','']
    11     if gap>60:
    12         fen, miao = divmod(gap, 60)
    13         if fen>=60:
    14             shi,fen=divmod(fen,60)
    15 
    16             if shi>=24:
    17                 day,shi=divmod(shi,24)
    18                 time_list[0]='%d天'%day
    19 
    20             time_list[1]='%d小时' % shi
    21 
    22         time_list[2]= '%d分钟' % fen
    23     else:
    24         time_list.append('%d秒' % gap)
    25         print(time_list)
    26     return ''.join(time_list)
    View Code
  • 相关阅读:
    详谈JavaScript原型链
    清除浮动(常用的四种方式)
    Uncaught TypeError: Cannot set property ‘display‘ of undefined解决
    Linux虚拟机、服务器上安装MySQL
    使用pipeline构建mysql容器并发布到K8S
    Kubernetes数据持久化方案
    centos7配置nfs
    pipleline实现docker、k8s代理节点
    RabbitMQ-7 管理+构建集群
    RabbitMQ-6 在Spring和Springboot中实现
  • 原文地址:https://www.cnblogs.com/shenwenlong/p/5704123.html
Copyright © 2020-2023  润新知