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)

原文地址:https://www.cnblogs.com/a2534786642/p/11040680.html

时间: 2024-10-11 20:58:18

03 辅助函数三的相关文章

MySQL基础知识03数据类型(三)日期时间相关类型

1. DATE DATE类型只包含日期,格式:'YYYY-MM-DD'.范围从'0000-01-01'到'9999-12-31'.其中年月日只能输入有效的年月日. mysql> create table d1 ( id  date primary key); Query OK, 0 rows affected (0.02 sec) mysql> show create table d1; +-------+--------------------------------------------

03、三种简单的计时器

1.计时器在游戏中的使用次数很多,以下是三种简单的计时器写法 2.代码: 1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 using UnityEngine.UI; 5 6 public class Timer : MonoBehaviour 7 { 8 private Text textTime; 9 private int second = 20; 10 11 pri

Python全栈开发学习笔记-03.第三天

set 定义  set([1,2,3,4]) {1,2,3,4} 键值不可重复 三元运算符 mykey = value1 if 100>20 else value2 深浅拷贝 import copy value1 = "123" value2 = copy.copy(value1) #浅拷贝 value3 = copy.deepcopy(valu1) #深拷贝 总结: 1. 深浅拷贝对str和数字 都不拷贝,使用内存同一块区域. 2. 对于list, dict,tuple的拷贝,

Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例

概要 上一章,我们学习了Collection的架构.这一章开始,我们对Collection的具体实现类进行讲解:首先,讲解List,而List中ArrayList又最为常用.因此,本章我们讲解ArrayList.先对ArrayList有个整体认识,再学习它的源码,最后再通过例子来学习如何使用它.内容包括:第1部分 ArrayList简介第2部分 ArrayList数据结构第3部分 ArrayList源码解析(基于JDK1.6.0_45)第4部分 ArrayList遍历方式第5部分 toArray

Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 概要 上一章,我们学习了Collection的架构.这一章开始,我们对Collection的具体实现类进行讲解:首先,讲解List,而List中ArrayList又最为常用.因此,本章我们讲解ArrayList.先对ArrayLis

【转】Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例

概要 上一章,我们学习了Collection的架构.这一章开始,我们对Collection的具体实现类进行讲解:首先,讲解List,而List中ArrayList又最为常用.因此,本章我们讲解ArrayList.先对ArrayList有个整体认识,再学习它的源码,最后再通过例子来学习如何使用它.内容包括:第1部分 ArrayList简介第2部分 ArrayList数据结构第3部分 ArrayList源码解析(基于JDK1.6.0_45)第4部分 ArrayList遍历方式第5部分 toArray

(转)Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例

概要 上一章,我们学习了Collection的架构.这一章开始,我们对Collection的具体实现类进行讲解:首先,讲解List,而List中ArrayList又最为常用.因此,本章我们讲解ArrayList.先对ArrayList有个整体认识,再学习它的源码,最后再通过例子来学习如何使用它.内容包括:第1部分 ArrayList简介第2部分 ArrayList数据结构第3部分 ArrayList源码解析(基于JDK1.6.0_45)第4部分 ArrayList遍历方式第5部分 toArray

DB 查询分析器 6.03 在Windows 8 上安装与运行演示

     DB 查询分析器 6.03 在Windows 8 上安装与运行演示 马根峰                ( 广东联合电子服务股份有限公司, 广州 510300) 摘要          本文详细地介绍了"万能数据库查询分析器",中文版本<DB 查询分析器>.英文版本<DB Query Analyzer>6.03 在Windows 8上安装以及使用的情况. 从6.01 版本开始,万能数据库查询分析器的中英文版本中新增加了SQL "执行计划&q

DB 查询分析器 6.03 ,遨游于任何Windows操作系统之上的最优秀的数据库客户端工具

DB 查询分析器 6.03 ,遨游于任何Windows操作系统之上的最优秀的数据库客户端工具 中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员  http://www.csdn.net/article/2014-08-09/2821124 )推出的个人作品----万能数据库查询分析器,中文版本<DB 查询分析器>.英文版本<DB Query Analyzer>.它具有强大的功能.友好的操作界面.良好的操作性.跨越各种数据库平台乃至于EXCEL和文本文