- 新增websocket客户端和服务端实现 - 添加图片压缩工具和快速压缩脚本 - 实现学生信息处理相关API - 添加MQTT客户端和消息处理功能 - 更新.gitignore忽略更多文件类型 - 添加数据库操作工具和示例 - 实现多个测试脚本和工具类
513 lines
17 KiB
Plaintext
513 lines
17 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "7aa426df",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from requests import get,post,put\n",
|
|
"import pandas as pd\n",
|
|
"import time\n",
|
|
"import os\n",
|
|
"\n",
|
|
"teamId = 106\n",
|
|
"ip = \"http://10.143.25.3:8090\"\n",
|
|
"param = {\n",
|
|
" \"username\": \"tangchao\",\n",
|
|
" \"password\": \"123456a\",\n",
|
|
" \"client_id\": \"client\",\n",
|
|
" \"grant_type\": \"password\",\n",
|
|
" \"client_secret\": \"123456\",\n",
|
|
"}\n",
|
|
"data = get(url=f\"{ip}/oauth/token\",params=param).json()\n",
|
|
"token = data[\"access_token\"]\n",
|
|
"header = {\n",
|
|
" \"content-type\": \"application/json\",\n",
|
|
" \"authorization\": f\"Bearer {token}\",\n",
|
|
"}\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"id": "d790454a",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"文件: 丁真泽仁.jpg\n",
|
|
"响应: {'success': True, 'msg': 'http://10.143.25.3:9000/iot-school/2025-11-06/e286b47e3c9d4db396400167b77b4b1b.JPG', 'code': 0, 'data': None}\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"with open(\"./students/丁云钻.JPG\", \"rb\") as formFile:\n",
|
|
" # 正确的方式创建文件上传数据\n",
|
|
" mu_files = {\n",
|
|
" \"file\": (\"丁云钻.JPG\", formFile, \"application/octet-stream\")\n",
|
|
" }\n",
|
|
" \n",
|
|
" # 使用 files 参数而不是 data\n",
|
|
" response = post(\n",
|
|
" url=f\"{ip}/school/device/content/upload\",\n",
|
|
" headers={\n",
|
|
" \"authorization\": f\"Bearer {token}\"\n",
|
|
" },\n",
|
|
" files=mu_files\n",
|
|
" )\n",
|
|
" print(f\"文件: 丁真泽仁.jpg\")\n",
|
|
" print(f\"响应: {response.json()}\")\n",
|
|
" "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "68b6d980",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from pathlib import Path"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "9d2f61cf",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def getStudentInfo(name):\n",
|
|
" data = get(f\"{ip}/school/stuface/list?teamId=106&page=1&pageSize=15&gradeId=&classId=&stuName={name}&stuNo=&pageNumber=0&sortField=create_time&sortOrder=asc&access_token=908c0ba4-ead2-44a3-a3c4-6aaf0cfbeb8a\",headers=header).json()\n",
|
|
" if data['success']:\n",
|
|
" students = data['data']['records']\n",
|
|
" if len(students)==1:\n",
|
|
" return students[0]\n",
|
|
" elif len(students)>1:\n",
|
|
" count = 0\n",
|
|
" for stu in students:\n",
|
|
" if name == stu['stuName']:\n",
|
|
" count += 1\n",
|
|
" if count == 0:\n",
|
|
" return f\"姓名{name}没有学生,请检查\" \n",
|
|
" elif count > 1:\n",
|
|
" return f\"姓名{name}有{count}个学生,请检查\"\n",
|
|
" else:\n",
|
|
" for stu in students:\n",
|
|
" if name == stu['stuName']:\n",
|
|
" return stu\n",
|
|
" else:\n",
|
|
" return f\"姓名{name}有{len(students)}个学生,请检查\"\n",
|
|
"def uploadFace(file_path):\n",
|
|
" with open(file_path, \"rb\") as formFile:\n",
|
|
" mu_files = {\n",
|
|
" \"file\": (Path(file_path).name, formFile,\"application/octet-stream\")\n",
|
|
" }\n",
|
|
" response = post(f\"{ip}/school/device/content/upload\",\n",
|
|
" headers={\n",
|
|
" \"authorization\": f\"Bearer {token}\"\n",
|
|
" },\n",
|
|
" files=mu_files\n",
|
|
" ).json()\n",
|
|
" if response['success']:\n",
|
|
" return response\n",
|
|
" else:\n",
|
|
" return f\"上传失败{response['msg']}\"\n",
|
|
"def updateFaceInfo(stuInfo,files):\n",
|
|
" data = put(f\"{ip}/school/stuface/save\",\n",
|
|
" headers=header,\n",
|
|
" json={\n",
|
|
" \"studentId\": stuInfo['studentId'],\n",
|
|
" \"files\": files\n",
|
|
" }\n",
|
|
" ).json()\n",
|
|
" if data['success']:\n",
|
|
" print(\"更新成功\")\n",
|
|
" return data\n",
|
|
" else:\n",
|
|
" print(f\"更新失败{data['msg']}\")\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"id": "97d03b64",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"count = 0"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "b27da758",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"fail_student=[]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "4eb1025d",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"丁真 更新成功\n",
|
|
"丁真仁真 更新成功\n",
|
|
"丁真拥青 更新成功\n",
|
|
"丁真月登 姓名丁真月登有0个学生,请检查\n",
|
|
"丁真罗布 更新成功\n",
|
|
"丹增拥西 更新成功\n",
|
|
"丹增拥西.jpg.temp 姓名丹增拥西.jpg.temp有0个学生,请检查\n",
|
|
"丹真珠扎 更新成功\n",
|
|
"久美郎加 更新成功\n",
|
|
"于焜豪 更新成功\n",
|
|
"仁真曲珍 更新成功\n",
|
|
"仁青彭措 更新成功\n",
|
|
"付森林 更新成功\n",
|
|
"代子浩 更新成功\n",
|
|
"伍金次仁 更新成功\n",
|
|
"何奥雪 更新成功\n",
|
|
"何子健 更新成功\n",
|
|
"何瑞林 更新成功\n",
|
|
"何绮琪 更新成功\n",
|
|
"何雨洁 更新成功\n",
|
|
"佘芯欣 更新成功\n",
|
|
"余帅 更新成功\n",
|
|
"佟诗佳 更新成功\n",
|
|
"倪杰博文 更新成功\n",
|
|
"其麦 更新成功\n",
|
|
"冯文童 更新成功\n",
|
|
"冯星宇 更新成功\n",
|
|
"刘佳 更新成功\n",
|
|
"刘冬晨 更新成功\n",
|
|
"刘宸驿 更新成功\n",
|
|
"刘峻熙 更新成功\n",
|
|
"刘志欣 更新成功\n",
|
|
"刘权 更新成功\n",
|
|
"刘杰 姓名刘杰有3个学生,请检查\n",
|
|
"刘玉婷 姓名刘玉婷有2个学生,请检查\n",
|
|
"刘王昊杰 更新成功\n",
|
|
"刘肖 更新成功\n",
|
|
"刘芮 更新成功\n",
|
|
"刘芸汐 更新成功\n",
|
|
"刘萭菡 更新成功\n",
|
|
"卓玛曲忠 更新成功\n",
|
|
"单孜扎巴 更新成功\n",
|
|
"单真赤里 更新成功\n",
|
|
"卢朝亭 更新成功\n",
|
|
"古绒曲珍 更新成功\n",
|
|
"向雨涵 更新成功\n",
|
|
"吴瑞鑫 更新成功\n",
|
|
"吴雪 更新成功\n",
|
|
"周杰 更新成功\n",
|
|
"呷松泽仁 更新成功\n",
|
|
"呷绒拉姆 更新成功\n",
|
|
"呷绒拉姆.jpg.temp 姓名呷绒拉姆.jpg.temp有0个学生,请检查\n",
|
|
"唐越 更新成功\n",
|
|
"唐雨轩 姓名唐雨轩有0个学生,请检查\n",
|
|
"唐韵玲 更新成功\n",
|
|
"四郎吉称 更新成功\n",
|
|
"四郎娜姆 更新成功\n",
|
|
"四郎志玛 更新成功\n",
|
|
"四郎降村 更新成功\n",
|
|
"土登称来 更新成功\n",
|
|
"夏处 更新成功\n",
|
|
"夏宁静 姓名夏宁静有0个学生,请检查\n",
|
|
"夏思乐 更新成功\n",
|
|
"央珠尼玛 更新成功\n",
|
|
"姜唯怡 更新成功\n",
|
|
"姜唯怡.jpg.temp 姓名姜唯怡.jpg.temp有0个学生,请检查\n",
|
|
"娄源 更新成功\n",
|
|
"孙婧仪 更新成功\n",
|
|
"尹荣强 更新成功\n",
|
|
"尼玛拉姆 姓名尼玛拉姆有2个学生,请检查\n",
|
|
"巩天姚 更新成功\n",
|
|
"巴措 姓名巴措有2个学生,请检查\n",
|
|
"巴桑 更新成功\n",
|
|
"巴桑卓玛 更新成功\n",
|
|
"帅紫欣 更新成功\n",
|
|
"廖爽 更新成功\n",
|
|
"张世鑫 更新成功\n",
|
|
"张健霖 更新成功\n",
|
|
"张勇 姓名张勇有2个学生,请检查\n",
|
|
"张友林 更新成功\n",
|
|
"张康萌 更新成功\n",
|
|
"张旭东 更新成功\n",
|
|
"张明瑞 更新成功\n",
|
|
"张林丰 更新成功\n",
|
|
"张永科 更新成功\n",
|
|
"张澜 更新成功\n",
|
|
"张鑫雨 更新成功\n",
|
|
"张雨歆 更新成功\n",
|
|
"彭嘉妮 更新成功\n",
|
|
"彭小青 更新成功\n",
|
|
"彭徐馨 更新成功\n",
|
|
"彭馨怡 更新成功\n",
|
|
"徐宇奇 更新成功\n",
|
|
"德青巴姆 更新成功\n",
|
|
"德青翁姆 更新成功\n",
|
|
"志玛拥忠 更新成功\n",
|
|
"成宇轩 更新成功\n",
|
|
"戚昕钰 更新成功\n",
|
|
"房明勇 更新成功\n",
|
|
"扎西 更新成功\n",
|
|
"扎西华本 更新成功\n",
|
|
"扎西多吉 姓名扎西多吉有3个学生,请检查\n",
|
|
"扎西巴拥 姓名扎西巴拥有2个学生,请检查\n",
|
|
"扎西彭措 更新成功\n",
|
|
"扎西翁姆 姓名扎西翁姆有2个学生,请检查\n",
|
|
"扎西邓珠 姓名扎西邓珠有3个学生,请检查\n",
|
|
"拉热 更新成功\n",
|
|
"拥吉拉姆 更新成功\n",
|
|
"措姆 更新成功\n",
|
|
"斯朗让步 姓名斯朗让步有0个学生,请检查\n",
|
|
"斯郎泽仁 更新成功\n",
|
|
"方思淇 更新成功\n",
|
|
"昂翁落珠 更新成功\n",
|
|
"普布 更新成功\n",
|
|
"普灯 更新成功\n",
|
|
"曲云登降措 更新成功\n",
|
|
"曲巴降措 更新成功\n",
|
|
"曲机卓玛 更新成功\n",
|
|
"曲登志玛 更新成功\n",
|
|
"更扎 更新成功\n",
|
|
"曹正怡甫 姓名曹正怡甫有0个学生,请检查\n",
|
|
"曹海龙 更新成功\n",
|
|
"曹芮瑞 更新成功\n",
|
|
"曹青川 更新成功\n",
|
|
"曾佳佳 更新成功\n",
|
|
"曾昊然 更新成功\n",
|
|
"曾英杰 更新成功\n",
|
|
"朱俊 更新成功\n",
|
|
"朱杨成程 更新成功\n",
|
|
"朱绿红 更新成功\n",
|
|
"李东生 更新成功\n",
|
|
"李作浩 更新成功\n",
|
|
"李俊希 更新成功\n",
|
|
"李偌熙 已上传照片\n",
|
|
"李子浩 更新成功\n",
|
|
"李想 更新成功\n",
|
|
"李杨杨 更新成功\n",
|
|
"李杰 更新成功\n",
|
|
"李梦雪 更新成功\n",
|
|
"李洋 更新成功\n",
|
|
"李艾灵 更新成功\n",
|
|
"李茹茜 更新成功\n",
|
|
"李雨萱 更新成功\n",
|
|
"李雯静 更新成功\n",
|
|
"杜芸熙 更新成功\n",
|
|
"杨健鑫 更新成功\n",
|
|
"杨博为 更新成功\n",
|
|
"杨帆 姓名杨帆有2个学生,请检查\n",
|
|
"杨慧怡 更新成功\n",
|
|
"杨明高 更新成功\n",
|
|
"杨淞琳 更新成功\n",
|
|
"杨美玲 更新成功\n",
|
|
"杨钦城 更新成功\n",
|
|
"杨雪丽 更新成功\n",
|
|
"松安丁真 更新成功\n",
|
|
"林菲儿 更新成功\n",
|
|
"柔门 更新成功\n",
|
|
"根秋泽措 更新成功\n",
|
|
"格绒曲初 更新成功\n",
|
|
"梁湘怡 更新成功\n",
|
|
"梅宝文 更新成功\n",
|
|
"樊林钰 更新成功\n",
|
|
"次乃曲觉 更新成功\n",
|
|
"欧炤彬 更新成功\n",
|
|
"欧韦博 更新成功\n",
|
|
"段芸凯 更新成功\n",
|
|
"母林苹 更新成功\n",
|
|
"母玉洁 更新成功\n",
|
|
"毛滢 姓名毛滢有0个学生,请检查\n",
|
|
"毛雨荨 姓名毛雨荨有0个学生,请检查\n",
|
|
"江若溪 更新成功\n",
|
|
"汪彦丞 更新成功\n",
|
|
"汪秦川 更新成功\n",
|
|
"沈俊 更新成功\n",
|
|
"泽仁拥忠 姓名泽仁拥忠有2个学生,请检查\n",
|
|
"泽仁拥珍 更新成功\n",
|
|
"泽仁林波 更新成功\n",
|
|
"泽仁桑珠 更新成功\n",
|
|
"泽仁正呷 更新成功\n",
|
|
"泽仁邓珠 更新成功\n",
|
|
"泽绒拥桌 姓名泽绒拥桌有0个学生,请检查\n",
|
|
"泽翁拉姆 更新成功\n",
|
|
"洛绒刀登 姓名洛绒刀登有2个学生,请检查\n",
|
|
"洛绒央宗 更新成功\n",
|
|
"洛绒曲西 更新成功\n",
|
|
"洛绒银登 更新成功\n",
|
|
"洛让普错 更新成功\n",
|
|
"淳思琴 更新成功\n",
|
|
"熊建 更新成功\n",
|
|
"熊鑫豪 更新成功\n",
|
|
"牛泽浩 更新成功\n",
|
|
"王子轩 姓名王子轩有4个学生,请检查\n",
|
|
"王宇希杨 更新成功\n",
|
|
"王忠翔 更新成功\n",
|
|
"王思函 更新成功\n",
|
|
"王思涵 更新成功\n",
|
|
"王怡之 更新成功\n",
|
|
"王成鹏 更新成功\n",
|
|
"王星怡 更新成功\n",
|
|
"王浩 更新成功\n",
|
|
"王羌宇 更新成功\n",
|
|
"王羽 更新成功\n",
|
|
"王艺 姓名王艺有2个学生,请检查\n",
|
|
"王艺小 姓名王艺小有0个学生,请检查\n",
|
|
"王营凯 更新成功\n",
|
|
"王薛文 更新成功\n",
|
|
"王诗语 更新成功\n",
|
|
"王辛如 更新成功\n",
|
|
"王陈俊祎 更新成功\n",
|
|
"王雪瑞 更新成功\n",
|
|
"王震太 更新成功\n",
|
|
"王静煊 更新成功\n",
|
|
"珍珠拉姆 更新成功\n",
|
|
"班志 更新成功\n",
|
|
"生呷 更新成功\n",
|
|
"田文涛 更新成功\n",
|
|
"田玉峰 更新成功\n",
|
|
"登真翁姆 更新成功\n",
|
|
"登镇降措 姓名登镇降措有0个学生,请检查\n",
|
|
"白浩洋 更新成功\n",
|
|
"白玛泽真 姓名白玛泽真有0个学生,请检查\n",
|
|
"白马恩珠 姓名白马恩珠有0个学生,请检查\n",
|
|
"石雨鑫 更新成功\n",
|
|
"秀雯 更新成功\n",
|
|
"罗得 姓名罗得有0个学生,请检查\n",
|
|
"罗湘缘 更新成功\n",
|
|
"罗琛 更新成功\n",
|
|
"罗绒多吉 更新成功\n",
|
|
"肖宇欣 更新成功\n",
|
|
"胡仟军 更新成功\n",
|
|
"蒋刘杨吉 更新成功\n",
|
|
"蒋苏豪 更新成功\n",
|
|
"薛佳佳 更新成功\n",
|
|
"许博文 更新成功\n",
|
|
"谢佳心 更新成功\n",
|
|
"谢晓丽 更新成功\n",
|
|
"谢耀辉 更新成功\n",
|
|
"谭明涛 更新成功\n",
|
|
"贾馥嫣 更新成功\n",
|
|
"赵亚军豪 更新成功\n",
|
|
"赵元兵 更新成功\n",
|
|
"赵星宇 更新成功\n",
|
|
"赵欢 更新成功\n",
|
|
"赵瑛杰 更新成功\n",
|
|
"赵禹婷 更新成功\n",
|
|
"达瓦泽仁 更新成功\n",
|
|
"邓丽君 更新成功\n",
|
|
"邓婉麟 更新成功\n",
|
|
"邓曹华 更新成功\n",
|
|
"邓汶汶 更新成功\n",
|
|
"邓玉 更新成功\n",
|
|
"邓蔡清 更新成功\n",
|
|
"邱明辉 更新成功\n",
|
|
"邱骏熙 更新成功\n",
|
|
"邹志栋 更新成功\n",
|
|
"邹晞 更新成功\n",
|
|
"邹铭洋 姓名邹铭洋有0个学生,请检查\n",
|
|
"郑丁山 更新成功\n",
|
|
"郑霜侨 更新成功\n",
|
|
"钟渝萍 更新成功\n",
|
|
"错日娜 姓名错日娜有0个学生,请检查\n",
|
|
"阳志 更新成功\n",
|
|
"阿布 更新成功\n",
|
|
"陈峰 更新成功\n",
|
|
"陈新幻 更新成功\n",
|
|
"陈新摇 更新成功\n",
|
|
"陈爽 更新成功\n",
|
|
"陈琳 更新成功\n",
|
|
"陈雪梅 更新成功\n",
|
|
"陈静 更新成功\n",
|
|
"降批所郎 更新成功\n",
|
|
"降拥巴姆 姓名降拥巴姆有2个学生,请检查\n",
|
|
"陶茂宇 更新成功\n",
|
|
"青美泽仁 更新成功\n",
|
|
"青麦翁姆 更新成功\n",
|
|
"韩思月 更新成功\n",
|
|
"韩艺菱 更新成功\n",
|
|
"马博俊 更新成功\n",
|
|
"高唐德胜 更新成功\n",
|
|
"高让桑章 更新成功\n",
|
|
"魏佳莉 更新成功\n",
|
|
"鲁绒珍珠 姓名鲁绒珍珠有0个学生,请检查\n",
|
|
"黄俊豪 更新成功\n",
|
|
"黄友诚 更新成功\n",
|
|
"黄定瑞 更新成功\n",
|
|
"黄若翔 更新成功\n",
|
|
"龙凤辛迪 更新成功\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"for root, dirs, files in os.walk(\"./students/\"):\n",
|
|
" for index,file in enumerate(files):\n",
|
|
" file_path = os.path.join(root, file)\n",
|
|
" stuName = Path(file_path).stem\n",
|
|
" print(stuName ,end=\" \")\n",
|
|
" stuInfo = getStudentInfo(stuName)\n",
|
|
" if isinstance(stuInfo, str):\n",
|
|
" print(stuInfo)\n",
|
|
" count += 1\n",
|
|
" continue\n",
|
|
" if stuInfo[\"files\"] and 'http' in stuInfo[\"files\"]:\n",
|
|
" print(f\"已上传照片\")\n",
|
|
" continue\n",
|
|
" if count > index:\n",
|
|
" print(f\"已上传张照片\")\n",
|
|
" continue\n",
|
|
" res = uploadFace(file_path)\n",
|
|
" if isinstance(res, str):\n",
|
|
" print(f\"上传图片失败{res}\")\n",
|
|
" count += 1\n",
|
|
" fail_student.append(stuInfo)\n",
|
|
" continue\n",
|
|
" updateFaceInfo(stuInfo, [{\"url\":res['msg'],\"name\":file}])\n",
|
|
" count+=1"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "6f4fcfcf",
|
|
"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
|
|
}
|