feat: 添加多个功能模块和工具脚本

- 新增websocket客户端和服务端实现
- 添加图片压缩工具和快速压缩脚本
- 实现学生信息处理相关API
- 添加MQTT客户端和消息处理功能
- 更新.gitignore忽略更多文件类型
- 添加数据库操作工具和示例
- 实现多个测试脚本和工具类
This commit is contained in:
2026-04-13 14:47:50 +08:00
parent 2cfd7c5a08
commit aac9f5934d
87 changed files with 216279 additions and 6519 deletions
+245
View File
@@ -0,0 +1,245 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 8,
"id": "4ba86c3e",
"metadata": {},
"outputs": [],
"source": [
"import pymysql\n",
"import snowflake\n",
"from faker import Faker\n",
"import random\n",
"import datetime\n",
"fake = Faker('zh_CN')\n",
"import random\n",
"# 创建数据库连接\n",
"connection = pymysql.connect(\n",
"host='192.168.0.244',\n",
"port=3306,\n",
"user='root',\n",
"password='Abcd@123456',\n",
"database='hongxx',\n",
"charset='utf8'\n",
")\n",
"# 创建游标对象\n",
"cursor = connection.cursor()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "5db9d7fd",
"metadata": {},
"outputs": [],
"source": [
"def create_table(cursor,result):\n",
" \n",
" data = []\n",
" for i in result:\n",
" list_list = list(i)\n",
" des=cursor.description # 获取表详情,字段名,长度,属性等\n",
" t = \",\".join([item[0] for item in des])\n",
" table_head = t.split(',') # # 查询表列名 用,分割\n",
" \n",
" dict_result = dict(zip(table_head, list_list)) # 打包为元组的列表 再转换为字典\n",
" data.append(dict_result) # 将字典添加到list_result中\n",
" return data"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "c62fc147",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Open-architected analyzing portal'"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fake.catch_phrase()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "8d091b58",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"INSERT INTO `sys_custom_open_page` \n",
"(`parent_id`, `name`, `description`, `page_level`, `biz_type`, `page_type`, \n",
"`section_code`, `page_path`, `page_url`, `dept_id`, `del_flag`, `create_by`, \n",
"`create_time`, `create_person_id`, `create_person_name`, `update_by`, \n",
"`update_time`, `update_person_name`, `update_person_id`) \n",
"VALUES (3, 'Phas', NULL, '0', 'video', '1', '1245', 'http://www.baidu.com', \n",
"NULL, 0, '0', 'xtl', '2026-01-14 17:04:49', 0, 'xtl', 'xtl', \n",
"'2026-01-14 17:05:10', 'xtl', 0);\n",
"\n",
"\n",
"INSERT INTO `sys_custom_open_page` \n",
"(`parent_id`, `name`, `description`, `page_level`, `biz_type`, `page_type`, \n",
"`section_code`, `page_path`, `page_url`, `dept_id`, `del_flag`, `create_by`, \n",
"`create_time`, `create_person_id`, `create_person_name`, `update_by`, \n",
"`update_time`, `update_person_name`, `update_person_id`) \n",
"VALUES (3, 'Bala', NULL, '0', 'video', '1', '1245', 'http://www.baidu.com', \n",
"NULL, 0, '0', 'xtl', '2026-01-14 17:04:49', 0, 'xtl', 'xtl', \n",
"'2026-01-14 17:05:10', 'xtl', 0);\n",
"\n",
"\n",
"INSERT INTO `sys_custom_open_page` \n",
"(`parent_id`, `name`, `description`, `page_level`, `biz_type`, `page_type`, \n",
"`section_code`, `page_path`, `page_url`, `dept_id`, `del_flag`, `create_by`, \n",
"`create_time`, `create_person_id`, `create_person_name`, `update_by`, \n",
"`update_time`, `update_person_name`, `update_person_id`) \n",
"VALUES (4, 'Syne', NULL, '0', 'video', '1', '1245', 'http://www.baidu.com', \n",
"NULL, 0, '0', 'xtl', '2026-01-14 17:04:49', 0, 'xtl', 'xtl', \n",
"'2026-01-14 17:05:10', 'xtl', 0);\n",
"\n",
"\n",
"INSERT INTO `sys_custom_open_page` \n",
"(`parent_id`, `name`, `description`, `page_level`, `biz_type`, `page_type`, \n",
"`section_code`, `page_path`, `page_url`, `dept_id`, `del_flag`, `create_by`, \n",
"`create_time`, `create_person_id`, `create_person_name`, `update_by`, \n",
"`update_time`, `update_person_name`, `update_person_id`) \n",
"VALUES (2, 'Cust', NULL, '0', 'video', '1', '1245', 'http://www.baidu.com', \n",
"NULL, 0, '0', 'xtl', '2026-01-14 17:04:49', 0, 'xtl', 'xtl', \n",
"'2026-01-14 17:05:10', 'xtl', 0);\n",
"\n",
"\n",
"INSERT INTO `sys_custom_open_page` \n",
"(`parent_id`, `name`, `description`, `page_level`, `biz_type`, `page_type`, \n",
"`section_code`, `page_path`, `page_url`, `dept_id`, `del_flag`, `create_by`, \n",
"`create_time`, `create_person_id`, `create_person_name`, `update_by`, \n",
"`update_time`, `update_person_name`, `update_person_id`) \n",
"VALUES (2, 'Stre', NULL, '0', 'video', '1', '1245', 'http://www.baidu.com', \n",
"NULL, 0, '0', 'xtl', '2026-01-14 17:04:49', 0, 'xtl', 'xtl', \n",
"'2026-01-14 17:05:10', 'xtl', 0);\n",
"\n",
"\n",
"INSERT INTO `sys_custom_open_page` \n",
"(`parent_id`, `name`, `description`, `page_level`, `biz_type`, `page_type`, \n",
"`section_code`, `page_path`, `page_url`, `dept_id`, `del_flag`, `create_by`, \n",
"`create_time`, `create_person_id`, `create_person_name`, `update_by`, \n",
"`update_time`, `update_person_name`, `update_person_id`) \n",
"VALUES (2, 'Orga', NULL, '0', 'video', '1', '1245', 'http://www.baidu.com', \n",
"NULL, 0, '0', 'xtl', '2026-01-14 17:04:49', 0, 'xtl', 'xtl', \n",
"'2026-01-14 17:05:10', 'xtl', 0);\n",
"\n",
"\n",
"INSERT INTO `sys_custom_open_page` \n",
"(`parent_id`, `name`, `description`, `page_level`, `biz_type`, `page_type`, \n",
"`section_code`, `page_path`, `page_url`, `dept_id`, `del_flag`, `create_by`, \n",
"`create_time`, `create_person_id`, `create_person_name`, `update_by`, \n",
"`update_time`, `update_person_name`, `update_person_id`) \n",
"VALUES (2, 'Ergo', NULL, '0', 'video', '1', '1245', 'http://www.baidu.com', \n",
"NULL, 0, '0', 'xtl', '2026-01-14 17:04:49', 0, 'xtl', 'xtl', \n",
"'2026-01-14 17:05:10', 'xtl', 0);\n",
"\n",
"\n",
"INSERT INTO `sys_custom_open_page` \n",
"(`parent_id`, `name`, `description`, `page_level`, `biz_type`, `page_type`, \n",
"`section_code`, `page_path`, `page_url`, `dept_id`, `del_flag`, `create_by`, \n",
"`create_time`, `create_person_id`, `create_person_name`, `update_by`, \n",
"`update_time`, `update_person_name`, `update_person_id`) \n",
"VALUES (2, 'Clon', NULL, '0', 'video', '1', '1245', 'http://www.baidu.com', \n",
"NULL, 0, '0', 'xtl', '2026-01-14 17:04:49', 0, 'xtl', 'xtl', \n",
"'2026-01-14 17:05:10', 'xtl', 0);\n",
"\n",
"\n",
"INSERT INTO `sys_custom_open_page` \n",
"(`parent_id`, `name`, `description`, `page_level`, `biz_type`, `page_type`, \n",
"`section_code`, `page_path`, `page_url`, `dept_id`, `del_flag`, `create_by`, \n",
"`create_time`, `create_person_id`, `create_person_name`, `update_by`, \n",
"`update_time`, `update_person_name`, `update_person_id`) \n",
"VALUES (2, 'Pola', NULL, '0', 'video', '1', '1245', 'http://www.baidu.com', \n",
"NULL, 0, '0', 'xtl', '2026-01-14 17:04:49', 0, 'xtl', 'xtl', \n",
"'2026-01-14 17:05:10', 'xtl', 0);\n",
"\n",
"\n",
"INSERT INTO `sys_custom_open_page` \n",
"(`parent_id`, `name`, `description`, `page_level`, `biz_type`, `page_type`, \n",
"`section_code`, `page_path`, `page_url`, `dept_id`, `del_flag`, `create_by`, \n",
"`create_time`, `create_person_id`, `create_person_name`, `update_by`, \n",
"`update_time`, `update_person_name`, `update_person_id`) \n",
"VALUES (1, 'Opti', NULL, '0', 'video', '1', '1245', 'http://www.baidu.com', \n",
"NULL, 0, '0', 'xtl', '2026-01-14 17:04:49', 0, 'xtl', 'xtl', \n",
"'2026-01-14 17:05:10', 'xtl', 0);\n",
"\n",
"10条数据插入成功!\n"
]
}
],
"source": [
"\n",
"\n",
"# 3. 循环生成10条数据并插入\n",
"for _ in range(10):\n",
" # 生成随机parent_id1-4\n",
" random_parent_id = random.randint(1, 4)\n",
" # 生成随机名称(faker的word/name方法,这里用catch_phrase生成更贴合“页面名称”的随机词)\n",
" random_name = fake.catch_phrase()[:4] # 限制长度避免超出字段长度\n",
" sql = insert_sql.format(random_parent_id, random_name)\n",
" insert_sql = f\"\"\"\n",
"INSERT INTO `sys_custom_open_page` \n",
"(`parent_id`, `name`, `description`, `page_level`, `biz_type`, `page_type`, \n",
"`section_code`, `page_path`, `page_url`, `dept_id`, `del_flag`, `create_by`, \n",
"`create_time`, `create_person_id`, `create_person_name`, `update_by`, \n",
"`update_time`, `update_person_name`, `update_person_id`) \n",
"VALUES ({random_parent_id}, '{random_name}', NULL, '0', 'video', '1', '1245', 'http://www.baidu.com', \n",
"NULL, 0, '0', 'xtl', '2026-01-14 17:04:49', 0, 'xtl', 'xtl', \n",
"'2026-01-14 17:05:10', 'xtl', 0);\n",
"\"\"\"\n",
" print(insert_sql)\n",
" # 执行插入\n",
" # cursor.execute(insert_sql, (random_parent_id, random_name))\n",
"\n",
"# 4. 提交事务(必须提交才会写入数据库)\n",
"# connection.commit()\n",
"print(\"10条数据插入成功!\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5cb7f98e",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}