![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
前后端开发功能代码库
一些常用的小功能,整理一下以后直接复制粘贴用即可
拾牙慧者
会点c++、python;
展开
-
【Python】@cache装饰器使用 (依赖cachetools)
cachetools是一个 Python 缓存库,可以用于缓存函数的计算结果,以提高程序的性能和响应速度。使用cachetools可以避免重复计算、减少网络请求、降低数据库负载等问题,从而提高程序的效率和可靠性。cachetools的使用条件是函数的计算结果具有可重复性,即对于相同的输入参数,函数的输出结果始终相同。此外,cachetools还需要一些额外的配置参数,例如缓存的最大大小、缓存的过期时间等。使用cachetools。原创 2023-04-09 18:30:16 · 1052 阅读 · 0 评论 -
c++中以类对象作为key用于unordered_map、map,以及std::tie技巧使用
在这个例子中,std::tie 函数将 country_id、province_id 和 isp_id 绑定在一起,形成一个元组。当比较多个成员变量时,可以使用 std::tie 函数来简化比较操作。std::tie 函数可以将多个变量绑定在一起,形成一个元组,然后使用元组的比较操作符进行比较。需要注意的是结构体的成员变量应该是不可变的,以避免在哈希表or红黑树中修改键值对。如果在哈希表or红黑树中修改键值对,将会导致哈希表or红黑树的内部结构被破坏,从而导致未定义的行为。原创 2023-04-06 21:14:55 · 881 阅读 · 0 评论 -
c++判断文件是否存在
可以使用C++的文件流来判断文件是否存在。原创 2023-03-22 23:10:11 · 1516 阅读 · 0 评论 -
c++用vector实现定长队列
我们可以用queue或vector实现定长队列,但是如果我们有遍历定长队列的需求的话,使用queue不是一个好的选择,因为queue本身不支持。这里分别提供queue和vector的实现原创 2023-03-22 23:06:19 · 1466 阅读 · 0 评论 -
C++使用rapidjson进行类的序列化与反序列化
C++中可以使用第三方库来实现将类序列化成JSON文件,以及读取JSON文件内容反序列化为类对象。使用的话也比较简单,拉下代码,然后将rapidjson-master/include/rapidjson目录拉到自己文件目录下,然后在编译参数上加上即可。原创 2023-03-22 22:54:16 · 924 阅读 · 0 评论 -
C++依赖时间戳生成随机ipv4
随机数采用mt19937 生成,性能较高捏。原创 2023-03-15 23:47:31 · 165 阅读 · 0 评论 -
c++获取本进程的进程名称
在C++中,可以使用操作系统提供的API函数获取本进程的进程名称原创 2023-03-13 22:45:46 · 2006 阅读 · 0 评论 -
python:封装CRUD操作
# 封装数据库操作def SELECT(db, cursor, sql): try: # 执行SQL语句 db.ping(reconnect=True) cursor.execute(sql) # 获取所有记录列表 results = cursor.fetchall() logging.debug("select commit") except: logging.error(sq原创 2022-03-28 14:27:44 · 1144 阅读 · 0 评论 -
python:将时间戳转换成格式化日期
import time# 将时间戳转换成格式化日期def timestamp_to_str(timestamp=None, format='%Y-%m-%d %H:%M:%S'): if timestamp: time_tuple = time.localtime(timestamp) # 把时间戳转换成时间元祖 result = time.strftime(format, time_tuple) # 把时间元祖转换成格式化好的时间 retur原创 2022-03-28 14:25:38 · 1708 阅读 · 0 评论 -
python脚本:判断字符是否为中文
# 判断字符是否为中文def is_chinese(ch): if u'\u4e00' <= ch <= u'\u9fff': return True else: return False原创 2022-03-28 14:24:01 · 1126 阅读 · 0 评论 -
python脚本:向表中插入新数据,删除表中最旧的数据
一张表存储历史数据,最多存储HISTORY_TABLE_MAX_ROWS条数据,当表中数据未达到HISTORY_TABLE_MAX_ROWS,直接插入;如果达到的话需要保证插入新数据的时候将最旧的数据删除这里使用先update最新数据,然后再重新update全表的id号-1吗,,这样就能实现这个功能了。def update_history_db(conn, cur, param , HISTORY_TABLE_MAX_ROWS, table_name): # 注意,这里的conn和cur不是函数原创 2022-03-28 14:21:03 · 1400 阅读 · 0 评论 -
python脚本 请求数量达到上限,http请求重试
由于在内网发送http请求同一个token会限制次数,所以很容易达到网关流量上限。业务中使用了多线程并发,一个线程发起一次http请求,得到正确结果后返回。这里采用的策略是,如果解析出来达到流量上限,那么该线程休眠一段时间,然后重试请求,如果还是失败,那么继续休眠,每次休眠的时间随着重试轮次增加:# 探测是否触及网关流量上限def probe_func(m_url, m_headers, m_json, m_timeout): json_rep = requests.post(url = m_原创 2022-03-28 14:13:30 · 4163 阅读 · 0 评论 -
python获取最近N天工作日列表、节假日列表
# 获取最近两周工作日列表、节假日列表import datetimeimport chinese_calendarimport timeimport pandas as pd# 将时间戳转换成格式化日期def timestamp_to_str(timestamp=None, format='%Y-%m-%d %H:%M:%S'): if timestamp: time_tuple = time.localtime(timestamp) # 把时间戳转换成时间元祖原创 2022-03-21 11:31:40 · 1738 阅读 · 0 评论 -
html清除图片缓存
img.src += '?t='+(+new Date());如:<img id = "5" src="../../../pics/prod_146/__INLINE__user_nums_cmp_146.png?t="+(+new Date()) width="1024">原创 2022-03-16 15:05:09 · 865 阅读 · 0 评论 -
使用Bootstrap-table创建表单,并且与flask后台进行数据交互
文章目录引用css和js使用htmljavascriptflaskmysql参考引用css和jsBootstrap-table为这些文件提供了 CDN 的支持,所以不需要下载.js .css文件就可以直接用了,十分方便<!-- Latest compiled and minified CSS --><link rel="stylesheet" href="https://unpkg.com/bootstrap-table@1.19.1/dist/bootstrap-table.mi原创 2022-03-15 21:31:26 · 3742 阅读 · 1 评论 -
py脚本:获取进程信息
这里以mysqld进程为例子# pip install psutilimport psutilimport timeimport re, sys# x:进程name y:非进程name# 由于这里监控的是mysqld,如果不加限制的话会先识别mysqld_safe,所以要加上mysql_safe的判别 def processinfo(x, y): p_list = psutil.process_iter() tlp = 0 try: for proce原创 2022-02-25 17:07:18 · 587 阅读 · 0 评论 -
get\post常用参数使用说明
原创 2022-01-25 10:29:40 · 191 阅读 · 0 评论 -
python 实现 topk算法
这里的版本是针对的一个class的某一个成员变量进行的:关于如何定义对象的比较方法,请参考往期文章:python定义对象的比较方法class province_room_quality_data: def __init__(self, room, quality): self.room = room self.quality = quality def __lt__(self, other): return self.quality <原创 2022-01-23 16:39:45 · 2064 阅读 · 0 评论 -
mysql 修改字段类型
修改字段类型:alter table 表名 modify column 字段名 类型。--如alter table province_quality modify column quality float(8,2);mysql> describe province_quality ;+----------+--------------+------+-----+---------+-------+| Field | Type | Null | Key | Defaul原创 2022-01-19 10:46:30 · 15273 阅读 · 0 评论 -
py脚本:linux系统下定时清理文件
linux清空文件内容的三种方法:1.使用vi/vim命令打开文件后,输入"%d"清空,后保存即可。但当文件内容较大时,处理较慢,命令如下:vim file_name:%d:wq2.使用cat命令情况,命令如下:cat /dev/null > file_name3.使用echo命令清空,此时会在文件中写入一个空行“\n",命令如下:echo "">file_namepython脚本执行shell命令也比较简单,直接在os.system里面放入想要执行的命令import原创 2022-01-18 17:07:15 · 1093 阅读 · 0 评论 -
echarts formatter鼠标悬停显示信息
由于echarts中柱状图,鼠标放上去默认显示的是x轴名称以及y轴值。而我现在需要再添加一些显示信息。下面是操作:在tooltip对象中补充trigger: “axis”,属性,然后再设置formatter。tooltip : { formatter: function (params) { // do some thing return “名称:” +params.name }}通过网页端的debug可以初步判断params结构:params是所有种的图信息原创 2022-01-06 23:22:27 · 7846 阅读 · 1 评论 -
echarts 怎么知道鼠标点击的哪根柱子
有个需求,点击柱子,然后得到该柱子的信息,然后展示这个机房的时序图。第一步卡住了,就是不知道如何获取柱子的序号。后参考:https://blog.csdn.net/zt_fucker/article/details/72461572?utm_source=blogxgwz1得到思路:添加事件 myChart.on('click', function (params) { alert(params.dataIndex); });然后点击第一个柱子:...原创 2022-01-06 17:16:56 · 1072 阅读 · 0 评论 -
开个定时器给echarts组件配置定时更新
我在js文件中开了个定时器,每1s从后端获取数据并解析,然后用异步方法就渲染不出来,改成同步就可以了。这个解决方法来自于这篇文章,我出的问题和他一样:关于ajax中readyState的值一直为1的问题这里将ajax参数修改为false即可:xmlhttp.open("GET","http://www.test.com/getData.php?q=",false);但是还有个问题,更改数据后还需要更新echarts组件的配置,否则页面不会动态刷新,还是静态的。根据mychart组件使用的三部曲:原创 2021-12-14 10:17:55 · 2159 阅读 · 0 评论 -
html网页如何获取后台数据库的数据(html + ajax + php + mysql)
目录html代码php文件代码还得在vscode上的php配置以及php环境搭建基于PhpStudy完成web配置登录数据库mysql的table准备将html文件和php文件项目放入WWW文件夹下跨域问题以及解决方案HTML是无法读取数据库的,HTML是页面前端脚本语言,要想从HTML网页中获取SQL数据库里的数据,需要借助JSP或ASP或PHP或RUBY等语言来实现。 简单的关系可以这样理解: 数据库<—>JSP或ASP或PHP或RUBY等语言<—>HTML这里我们选取php原创 2021-12-09 22:18:45 · 33225 阅读 · 1 评论