功能说明:
- 用户可注册用户,要求用户名不能重复
- 用户登陆后可查询单词,查询历史记录,清空历史记录
数据库结构:
- word表 保存单词及解释
CREATE TABLE `words` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`word` char(30) DEFAULT NULL,
`mean` text,
PRIMARY KEY (`id`)
)
- user表 保存用户名和密码
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
`passwd` char(64) NOT NULL,
PRIMARY KEY (`id`)
)
- hist表 保存历史记录
CREATE TABLE `hist` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) DEFAULT NULL,
`word` varchar(30) DEFAULT NULL,
`time` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)
客户端
"""
客户端
"""
# 导入相关模块
from socket import *
import sys
# 绑定服务端地址
HOST = "127.0.0.1"
PORT = 8888
ADDR = (HOST, PORT)
# 发送查询单词请求
def do_query(s):
# 循环查询单词
while True:
word = input("=========输入##退出查询========\n查询单词:")
if word == "##":
break
msg = "Q %s" % word
s.send(msg.encode())
# 等待结果并处理
data = s.recv(1024).decode()
print(data)
# 发送查询历史请求
def do_history(s):
s.send(b"H")
# 等待结果并处理
data = s.recv(1024).decode()
print(data)
# 发送清空历史请求
def clear_history(s):
s.send(b"C")
# 等待结果并处理
feedback = s.recv(1024).decode()
if feedback == "OK":
print("已清空查询历史!")
else:
print("发生错误!")
# 二级界面
def second_view(s):
# 二级界面循环
while True:
print("=================查询==================")
print("1:查单词 2:查历史 3:清历史 4:注销")
print("=======================================")
cmd2 = input(">>>")
if cmd2 == "1":
do_query(s)
elif cmd2