Skip to content

952994221/Socket-Lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Socket-Lab

Socket编程lab

开发环境 python 3.7

第三方库 pyqt5, pymysql

运行

python server.py启动服务端

python client.py运行客户端

数据库设计

两个表分别存储文本和图片信息

id name sex age
100001 Tom 1 18
id image_path
100001 /home/misaki/Pictures/100001_Tom.png
  • id为6位int,且为主码
    • 第二个表的id为外码,参照第一个表的id
  • name无格式限制
  • sex01
  • age为2位int
  • image_path无格式限制

GUI

GUI基于PyQt5开发

search功能

目前只支持使用单个信息搜索,同时输入多个信息查询时无法得到结果

只有使用id查询时才能得到图片信息

insert功能

侧栏insert进入数据导入界面,输入格式为id name sex age path(可选),一行一个数据,以空格符分隔

Import导入数据,进入数据编辑界面

导入数据时会检查输入的数据是否符合数据库设计要求,state显示为ReadyError

点击表格修改数据,点击Check按钮检查数据是否符合要求并更新state状态

点击表格image框选择上传图片文件,图片路径也可以在数据导入界面直接输入

insert向服务器发送数据,stateReady的条目会根据服务器发回的信息更新stateimage的状态,若成功则更新为SUCCESS,否则为FAIL

stateError的条目不会发送给服务器

服务器的文本和图片的处理是分开的,传输图片出错不影响文本信息的插入,即可能出现文本成功但图片失败的情况

update功能

Old Data中输入id后点击Search查询

Old Data中其他信息不可编辑

查询后在New Data中修改信息,其中id无法修改

Check按钮检查New Data数据是否符合数据库设计要求,并在State中显示状态,StateError的数据不会发送给服务器

Update向服务器发送数据,并在State窗口显示状态:SUCCESSFAIL

delete功能

侧栏insert进入数据导入界面,数据格式和insert的数据导入界面一样,只需要输入一个id即可,其余信息虽然会导入但是不会发送给服务器

导入数据后的界面和insert相同,但此时Check只会检查id是否符合要求

Delete只会发送id信息给服务器而忽略其他信息

根据服务器发回的信息更新State和的状态,但此时不会单独更新image的状态,两者统一到state中显示

About

Socket编程lab

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages