zoukankan      html  css  js  c++  java
  • 03 辅助函数三

      返回结构化数据

    1 def ajaxReturn(info,data={}):
    2     import json
    3     info['data'] = data
    4     return json.dumps(info)

      递归tree

    1 def get_tree(data,pid=0,level=0):
    2     data_list = []
    3     for info in data:
    4         if info['pid'] == pid:
    5             info['level'] = level
    6             info['name'] = '^-^ '*level +  info['name']
    7             data_list.append(info)
    8             data_list += get_tree(data, info['id'], level + 1)
    9     return data_list

      获取总页数

    1 def get_total_page(total):
    2     from flask import current_app
    3     import math
    4     try:
    5         pagesize = current_app.config['PAGESIZE']
    6     except:
    7         pagesize = 5
    8     return math.ceil(total/pagesize)

      分页试图函数

     1 def getHtmlPage(page=1,url='',total=0):
     2     '''
     3     * 获取分页的html内容
     4     * url 跳转链接
     5     * total 总条数
     6     * p = 起始页码
     7     '''
     8     from flask import current_app
     9     import math
    10     try:
    11         pagesize = current_app.config['PAGESIZE']
    12     except:
    13         pagesize = 5
    14     # 总页数
    15     pages = math.ceil(total/pagesize)
    16     # 最多显示10个页码
    17     _pageNum = 10
    18     # 如果当前页面小于1 则为1,否则就是其值
    19     page = 1 if page < 1 else page
    20     # 如果当前页数大于总数页数,则为总页数 否则为其页数
    21     page = pages if page > pages else page
    22     # 总页数小于当前页 则为当前页
    23     pages = page if pages < page else pages
    24 
    25     # 计算开始页
    26     _start = page - math.floor(_pageNum/2)
    27     _start = 1 if _start < 1 else _start
    28 
    29     # 计算结束页
    30     _end = page + math.floor(_pageNum/2)
    31     _end = pages if _end > pages else _end
    32 
    33     # 显示当前的页码数
    34     _currentPageNum = _end - _start + 1
    35 
    36     # 如果当前页码数不够最大页码数,左右调整
    37     # 左调整
    38     if _currentPageNum < _pageNum and _start > 1 :
    39         _start = _start - (_pageNum - _currentPageNum)
    40         _start = 1 if _start < 1 else _start
    41         _currentPageNum = _end - _start + 1
    42 
    43     # 右调整
    44     if _currentPageNum < _pageNum and _end < pages:
    45         _end = _end + (_pageNum - _currentPageNum)
    46         _end = pages if _end > pages else _end
    47 
    48     # 嵌套html
    49     _pageHtml = '<div class="dataTables_paginate paging_bootstrap"><ul class="pagination">'
    50     if page > 1 :
    51         _pageHtml += '<li><a  class="prev" title="上一页" href="'+url+'&page='+str(page - 1)+'">«</a></li>'
    52     for i in range(_start,_end+1):
    53         if i == page:
    54             _pageHtml += '<li><a class="active btn-info white">'+ str(i) +'</a></li>'
    55         else:
    56             _pageHtml += '<li><a href="' +url+ '&page=' +str(i)+ '">' +str(i)+ '</a></li>';
    57     if page < _end :
    58         _pageHtml += '<li><a class="next" title="下一页" href="'+ url + '&page='+str(page + 1)+'">»</a></li>';
    59     if total < 1 :
    60         _pageHtml += '<h4>暂无数据...</h4>'
    61     _pageHtml += "</ul></div>"
    62     # 返回值
    63     return '' if pages < 1 else _pageHtml

      生成一个随机数,六位随机数,不到六位,前面补0

    1 def getUUID(start=1,end=1000,length=6):
    2     import random
    3     randnum = str(random.randint(start,end))
    4     if len(randnum) < length :
    5         randnum = randnum.zfill(length)
    6     return randnum

      去除首尾空格和特殊符号

    1 def xss_clean(raw,flag=''):
    2     if flag == 'Integer':
    3         xraw = int(raw.strip()) if raw else 0
    4     else:
    5         xraw = raw.strip().replace('<', '&lt;').replace('>', '&gt;') if raw else ''
    6     return xraw

      获取菜单函数

    1 def getMenu(data,pid=0,deep=0):
    2     tree = []
    3     for row in data:
    4         if row['pid'] == pid:
    5             row['deep'] = deep
    6             row['child'] = getMenu(data,row['id'],deep+1)
    7             tree.append(row)
    8     return tree

      存储上传图片

     1 def save_images(images):
     2     from datetime import datetime
     3     import random
     4     pics_url = [] # 图片存储路径
     5     dir = 'app/static/images/questions/{}/'
     6     for image in images:
     7         try:
     8             ext = '.'+image.filename.rsplit('.', 1)[1]
     9         except:
    10             ext = '.png'
    11         path = dir.format(datetime.now().strftime('%Y-%m-%d'))
    12         filename = datetime.now().strftime('%d%H%M%S') + '-' + str(random.randint(10000, 99999)) + ext
    13         dir_exists(path) # 检查文件夹是否创建,若未创建,则创建
    14         pics = path + filename
    15         with open(pics,'wb') as fp:
    16             fp.write(image.read())
    17         pics_url.append(filename)
    18     return ';'.join(pics_url)
  • 相关阅读:
    浏览器内核
    为什么一般请求可以下载文件,Ajax 请求就不能下载
    转 深入理解javascript原型和闭包(10)——this
    node读取文本文件时,去掉BOM
    AMD & CMD
    gulp requirejs Error: ENOENT: no such file or directory, open '/js/require_config.js', 一直报找不到require_config.js,坑死了
    [BZOJ3224]普通平衡树
    [NOIP2014D2]
    [NOIP2014D1]
    [NOIP2013D2]
  • 原文地址:https://www.cnblogs.com/a2534786642/p/11040680.html
Copyright © 2011-2022 走看看