直接上运行截图(代码在后面)

开始界面

使用navicat查看mysql数据库中的数据

单词查询功能测试

本地翻译一个本地数据库中有的单词


本地翻译一个本地数据库中没有的单词

爬取有道官网进行在线翻译

单词录入功能测试

我是录入了很多单词,这里只放一张图片

然后查看数据库中的数据

单词测试功能测试

点击单词测试结果如下

难度选择中等后点击生成结果如下

在下面的输入框中输入你的答案然后点击提交,程序将会把你的试卷改出来

注意事项

这个程序是我好久以前用当时的电脑做的,现在电脑中本程序所需要的的数据库表并不全,大家如果需要使用的话,可以根据我的代码自己创建数据库,程序中的所有功能都是可以正常使用的。

源代码(如转发请注明出处,谢谢)

# -*- coding: utf-8 -*-
"""
Created on Tue Dec 24 13:06:14 2019@author: 一叶落而知天下秋
"""
import random
import wx
import pymysql
from urllib import request, parse
import json
import pymysqlclass priframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='多多瑜教育管理中心',pos=(650,300),size=(900,600))panel=wx.Panel(self)image_file = '背景2.png'to_bmp_image = wx.Image(image_file, wx.BITMAP_TYPE_ANY).ConvertToBitmap()panel.bitmap = wx.StaticBitmap(panel,-1, to_bmp_image, (0, 0))#set_title = '%s %d x %d' % (image_file,200,400)#self.SetTitle(set_title)'''panel.Bind(wx.EVT_ERASE_BACKGROUND,self.OnEraseBack)def OnEraseBack(self,event):dc = event.GetDC()if not dc:dc = wx.ClientDC(self)rect = self.GetUpdateRegion().GetBox()dc.SetClippingRect(rect)dc.Clear()bmp = wx.Bitmap("1.jpg")dc.DrawBitmap(bmp, 0, 0)'''#wx.StaticText(parent=panel,label='欢迎来到多多瑜教育管理中心',pos=(20,20))bmp=wx.Image('背景21.png', wx.BITMAP_TYPE_ANY).ConvertToBitmap()#self.button = wx.BitmapButton(panel, -1, bmp, pos=(10, 20))self.buttondancichaxun=wx.Button(panel.bitmap,label='单词查询',pos=(500,250),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttondancichaxun,self.buttondancichaxun)self.buttondanciluru=wx.Button(parent=panel.bitmap,label='单词录入',pos=(580,250),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttondanciluru,self.buttondanciluru)self.buttondancixiugai=wx.Button(parent=panel.bitmap,label='单词修改',pos=(660,250),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttondancixiugai,self.buttondancixiugai)self.buttondancishanchu=wx.Button(parent=panel.bitmap,label='单词删除',pos=(740,250),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttondancishanchu,self.buttondancishanchu)self.buttonjiansuojilu=wx.Button(parent=panel.bitmap,label='检索记录',pos=(420,370),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttonjiansuojilu,self.buttonjiansuojilu)self.buttondanciceshi=wx.Button(parent=panel.bitmap,label='单词测试',pos=(500,370),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttondanciceshi,self.buttondanciceshi)self.buttonweizhijiansuo=wx.Button(parent=panel.bitmap,label='位置检索',pos=(420,310),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttonweizhijiansuo,self.buttonweizhijiansuo)self.buttonlijuchaxun=wx.Button(parent=panel.bitmap,label='例句查询',pos=(500,310),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttonlijuchaxun,self.buttonlijuchaxun)self.buttonlijuluru=wx.Button(parent=panel.bitmap,label='例句录入',pos=(580,310),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttonlijuluru,self.buttonlijuluru)self.buttonlijuxiugai=wx.Button(parent=panel.bitmap,label='例句修改',pos=(660,310),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttonlijuxiugai,self.buttonlijuxiugai)self.buttonlijushanchu=wx.Button(parent=panel.bitmap,label='例句删除',pos=(740,310),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttonlijushanchu,self.buttonlijushanchu)self.buttonduanyuchaxun=wx.Button(parent=panel.bitmap,label='短语查询',pos=(580,370),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttonduanyuchaxun,self.buttonduanyuchaxun)self.buttonbeifen=wx.Button(parent=panel.bitmap,label='数据备份',pos=(660,370),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttonbeifen,self.buttonbeifen)self.buttonhuifu=wx.Button(parent=panel.bitmap,label='数据恢复',pos=(740,370),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttonhuifu,self.buttonhuifu)self.buttonwenjianchuangjian=wx.Button(panel.bitmap,label='创建文件',pos=(420,250),size=(70,40))self.Bind(wx.EVT_BUTTON,self.onbuttonwenjianchuangjian,self.buttonwenjianchuangjian)def onbuttonbeifen(self,event):conn=pymysql.connect(host='localhost',user='root',passwd='123456',db='sys')conn2=pymysql.connect(host='localhost',user='root',passwd='123456',db='sys')cur=conn.cursor()cur2=conn2.cursor()cur2.execute('delete from Wordbeifen')print('123')#row=cur.fetchone()#shuliang=row[0]cur.execute('select * from Word')row22=cur.fetchone()print(row22)while row22:cur2.execute('insert into Wordbeifen(danci,fanyi,difficulty) values(%s,%s,%d)',(row22[0],row22[1],row22[2]))row22=cur.fetchone()print(row22)conn.commit()conn2.commit()cur.close()cur2.close()conn.close()conn2.close()beifenframe(None).Show()def onbuttonhuifu(self,event):conn=pymysql.connect(host='localhost',user='root',passwd='123456',db='sys')conn2=pymysql.connect(host='localhost',user='root',passwd='123456',db='sys')cur=conn.cursor()cur2=conn2.cursor()cur2.execute('delete from Word')print('123')#row=cur.fetchone()#shuliang=row[0]cur.execute('select * from Wordbeifen')row22=cur.fetchone()print(row22)while row22:cur2.execute('insert into Word(danci,fanyi,difficulty) values(%s,%s,%d)',(row22[0],row22[1],row22[2]))row22=cur.fetchone()print(row22)conn.commit()conn2.commit()cur.close()cur2.close()conn.close()conn2.close()huifuframe(None).Show()def onbuttondancichaxun(self,event):dancichaxunframe(None).Show()def onbuttondanciluru(self,event):danciluruframe(None).Show()def onbuttondancixiugai(self,event):dancixiugaiframe(None).Show()def onbuttondancishanchu(self,event):dancishanchuframe(None).Show() def onbuttondanciceshi(self,event):danciceshiframe(None).Show() def onbuttonlijuchaxun(self,event):lijuchaxunframe(None).Show()def onbuttonlijuluru(self,event):lijuluruframe(None).Show()def onbuttonlijuxiugai(self,event):lijuxiugaiframe(None).Show()def onbuttonlijushanchu(self,event):lijushanchuframe(None).Show()def onbuttonduanyuchaxun(self,event):duanyuchaxunframe(None).Show()def onbuttonwenjianchuangjian(self,event):wenjianchuangjianframe(None).Show()def onbuttonweizhijiansuo(self,event):weizhijiansuoframe(None).Show()def onbuttonjiansuojilu(self,event):jiansuojiluframe(None).Show()
class beifenframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='数据备份',size=(200,150),pos=(650,100))panel=wx.Panel(self)self.result=wx.StaticText(parent=panel,label='数据备份成功',pos=(20,20),size=(150,20))
class huifuframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='数据恢复',size=(200,150),pos=(650,100))panel=wx.Panel(self)self.result=wx.StaticText(parent=panel,label='数据恢复成功',pos=(20,20),size=(150,20))
class dancichaxunframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='单词查询',size=(400,300),pos=(650,100))panel=wx.Panel(self)image_file = '通用背景1.jpg'to_bmp_image = wx.Image(image_file, wx.BITMAP_TYPE_ANY).ConvertToBitmap()#panel.bitmap = wx.StaticBitmap(panel,-1, to_bmp_image, (0, 0))self.text=wx.StaticText(parent=panel,label='请输入你想要查询的单词:',pos=(20,20),size=(200,20))#font = wx.Font(12, wx.DECORATIVE, wx.ITALIC, wx.NORMAL)#self.text.SetFont(font)#self.text.SetForegroundColour('blue')self.inputdanci=wx.TextCtrl(parent=panel,pos=(250,20),size=(100,20))self.result=wx.StaticText(parent=panel,label='',pos=(20,80),size=(200,20))self.result.SetBackgroundColour('lucency')self.buttonchaxun=wx.Button(parent=panel,label='英译汉',pos=(20,200))self.Bind(wx.EVT_BUTTON,self.onbuttonchaxun,self.buttonchaxun)self.buttonchaxun2=wx.Button(parent=panel,label='汉译英',pos=(120,200))self.Bind(wx.EVT_BUTTON,self.onbuttonchaxun2,self.buttonchaxun2)self.buttonzaixianfanyi=wx.Button(parent=panel,label='在线翻译',pos=(220,200))self.Bind(wx.EVT_BUTTON,self.onbuttonzaixianfanyi,self.buttonzaixianfanyi)def onbuttonchaxun(self,event):self.result.SetLabel('')string=str(self.inputdanci.GetValue())if string=='':self.result.SetLabel("输入不能为空,请重新输入")else:conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='sys')cur=conn.cursor()cur.execute('SELECT * FROM Word where word=%s',string)row = cur.fetchone()if row:string=row[1]self.result.SetLabel('本地翻译的中文为:'+string)else:self.result.SetLabel("本地词库中不存在该单词,请重新输入")cur.close()conn.close()def onbuttonchaxun2(self,event):self.result.SetLabel('')string=str(self.inputdanci.GetValue())if string=='':self.result.SetLabel("输入不能为空,请重新输入")else:conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='sys')cur=conn.cursor()cur.execute('SELECT * FROM Word where translate=%s',string)row = cur.fetchone()if row:string=row[0]self.result.SetLabel('本地词库的英文翻译为:'+string)else:self.result.SetLabel("该中文不存在,请重新输入")cur.close()conn.close()def onbuttonzaixianfanyi(self,event):if str(self.inputdanci.GetValue())=='':self.result.SetLabel('输入不能为空,请重新输入')else:req_url = 'http://fanyi.youdao.com/translate'  # 创建连接接口# 创建要提交的数据Form_Date = {}Form_Date['i'] =str(self.inputdanci.GetValue())  # 要翻译的内容可以更改Form_Date['doctype'] = 'json'data = parse.urlencode(Form_Date).encode('utf-8') #数据转换response = request.urlopen(req_url, data) #提交数据并解析html = response.read().decode('utf-8')  #服务器返回结果读取#print(html)# 可以看出html是一个json格式translate_results = json.loads(html)  #以json格式载入translate_results = translate_results['translateResult'][0][0]['tgt']  # json格式调取self.result.SetLabel('有道在线翻译为:'+translate_results) #输出结果
class lijuchaxunframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='例句查询',size=(400,300),pos=(650,100))panel=wx.Panel(self)wx.StaticText(parent=panel,label='请输入你想要查询例句的单词:',pos=(20,20),size=(220,20))self.inputdanci=wx.TextCtrl(parent=panel,pos=(20,60))self.result=wx.StaticText(parent=panel,label='',pos=(20,100),size=(300,20))self.buttonchaxun=wx.Button(parent=panel,label='查询',pos=(20,200))self.Bind(wx.EVT_BUTTON,self.onbuttonchaxun,self.buttonchaxun)#self.buttonzaixianfanyi=wx.Button(parent=panel,label='在线翻译',pos=(120,200))#self.Bind(wx.EVT_BUTTON,self.onbuttonzaixianfanyi,self.buttonzaixianfanyi)def onbuttonchaxun(self,event):self.result.SetLabel('')string=str(self.inputdanci.GetValue())if str(self.inputdanci.GetValue())=='':self.result.SetLabel("输入不能为空,请重新输入")else:conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='sys')cur=conn.cursor()cur.execute('SELECT liju FROM lijubiao where danci=%s',string)row = cur.fetchone()if row:string=row[0]if string!='':self.result.SetLabel('该单词的例句:'+string)else:self.result.SetLabel('本地数据库没有该单词的例句')else:self.result.SetLabel("该单词不存在,请重新输入")cur.close()conn.close()
class duanyuchaxunframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='短语查询',size=(400,300),pos=(650,100))panel=wx.Panel(self)wx.StaticText(parent=panel,label='请输入你想要查询的短语:',pos=(20,20),size=(300,15))self.inputdanci=wx.TextCtrl(parent=panel,pos=(20,60),size=(300,20))self.result=wx.StaticText(parent=panel,label='',pos=(20,100),size=(300,20))self.buttonchaxun=wx.Button(parent=panel,label='本地查询',pos=(20,200))self.Bind(wx.EVT_BUTTON,self.onbuttonchaxun,self.buttonchaxun)self.buttonzaixianfanyi=wx.Button(parent=panel,label='在线翻译',pos=(120,200))self.Bind(wx.EVT_BUTTON,self.onbuttonzaixianfanyi,self.buttonzaixianfanyi)def onbuttonchaxun(self,event):self.result.SetLabel('')string=str(self.inputdanci.GetValue())if str(self.inputdanci.GetValue())=='':self.result.SetLabel("输入不能为空,请重新输入")else:conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='sys')cur=conn.cursor()cur.execute('SELECT fanyi FROM duanyubiao where duanyu=%s',string)row = cur.fetchone()if row:string=row[0]self.result.SetLabel('本地翻译为:'+string)else:self.result.SetLabel("该单词不存在,请重新输入")cur.close()conn.close()def onbuttonzaixianfanyi(self,event):if str(self.inputdanci.GetValue())=='':self.result.SetLabel("输入不能为空,请重新输入")else:req_url = 'http://fanyi.youdao.com/translate'  # 创建连接接口# 创建要提交的数据Form_Date = {}Form_Date['i'] =str(self.inputdanci.GetValue())  # 要翻译的内容可以更改Form_Date['doctype'] = 'json'data = parse.urlencode(Form_Date).encode('utf-8') #数据转换response = request.urlopen(req_url, data) #提交数据并解析html = response.read().decode('utf-8')  #服务器返回结果读取#print(html)# 可以看出html是一个json格式translate_results = json.loads(html)  #以json格式载入translate_results = translate_results['translateResult'][0][0]['tgt']  # json格式调取self.result.SetLabel('有道在线翻译为:'+translate_results) #输出结果
class danciluruframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='单词录入',pos=(650,300),size=(400,300))panel=wx.Panel(self)wx.StaticText(parent=panel,label='请分别输入所要录入的单词以及翻译:',pos=(20,20),size=(300,15))wx.StaticText(parent=panel,label='单词:',pos=(20,50),size=(50,20))wx.StaticText(parent=panel,label='翻译:',pos=(20,80),size=(50,20))self.inputdanci=wx.TextCtrl(parent=panel,pos=(80,50),size=(200,20))self.inputfanyi=wx.TextCtrl(parent=panel,pos=(80,80),size=(200,20))self.buttonluru=wx.Button(parent=panel,label='录入',pos=(20,190),size=(100,30))self.Bind(wx.EVT_BUTTON,self.onbuttonluru,self.buttonluru)self.result=wx.StaticText(parent=panel,label='',pos=(20,150),size=(300,20))def onbuttonluru(self,event):string1=str(self.inputdanci.GetValue())string2=str(self.inputfanyi.GetValue())if string1=='' or string2=='':self.result.SetLabel('录入失败,请输入正确格式英文单词以及翻译')else:conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='sys')cur=conn.cursor()#cur2=conn.cursor()if len(string1)<8:difficulty=1elif len(string1)<11:difficulty=2else:difficulty=3cur.execute('insert into Word(word,translate,difficulty) values (%s,%s,%s)',(string1,string2,difficulty))#cur2.execute('insert into Wordbeifen(danci,fanyi,difficulty) values (%s,%s,%s)',(string1,string2,difficulty))conn.commit()cur.close()#cur2.close()conn.close()self.result.SetLabel('%s:%s\t录入成功'%(string1,string2))
class wenjianchuangjianframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='文件创建',pos=(650,300),size=(400,300))panel=wx.Panel(self)wx.StaticText(parent=panel,label='请分别输入文件名以及文件中的内容:',pos=(20,20),size=(300,15))wx.StaticText(parent=panel,label='文件名:',pos=(20,50),size=(50,20))wx.StaticText(parent=panel,label='内容:',pos=(20,80),size=(50,20))self.inputdanci=wx.TextCtrl(parent=panel,pos=(80,50),size=(200,20))self.inputfanyi=wx.TextCtrl(parent=panel,pos=(80,80),size=(200,90),style=wx.TE_MULTILINE)self.buttonluru=wx.Button(parent=panel,label='创建',pos=(20,190),size=(100,30))self.Bind(wx.EVT_BUTTON,self.onbuttonluru,self.buttonluru)self.result=wx.StaticText(parent=panel,label='',pos=(20,170),size=(300,20))def onbuttonluru(self,event):string1=str(self.inputdanci.GetValue())string2=str(self.inputfanyi.GetValue())if string1=='' or string2=='':self.result.SetLabel('创建失败,文件名以及内容不可为空,请重新输入')else:f1=open(string1+'.txt','w+',encoding= 'utf-8')f1.write(string2)f1.close()self.result.SetLabel('%s创建成功'%(string1+'.txt'))
class weizhijiansuoframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='位置检索',pos=(650,300),size=(400,300))panel=wx.Panel(self)wx.StaticText(parent=panel,label='请分别输入文件名以及检索的单词:',pos=(20,20),size=(300,20))wx.StaticText(parent=panel,label='文件名:',pos=(20,50),size=(50,20))wx.StaticText(parent=panel,label='单词:',pos=(200,50),size=(50,20))wx.StaticText(parent=panel,label='结果:',pos=(20,80),size=(50,20))self.inputdanci=wx.TextCtrl(parent=panel,pos=(80,50),size=(100,20))self.inputdanci2=wx.TextCtrl(parent=panel,pos=(250,50),size=(80,20))self.inputfanyi=wx.TextCtrl(parent=panel,pos=(80,80),value='此栏用于输出结果,不用填',size=(200,90),style=wx.TE_MULTILINE)self.buttonluru=wx.Button(parent=panel,label='检索',pos=(20,190),size=(100,30))self.Bind(wx.EVT_BUTTON,self.onbuttonluru,self.buttonluru)self.result=wx.StaticText(parent=panel,label='',pos=(20,170),size=(300,20))def onbuttonluru(self,event):string1=str(self.inputdanci.GetValue())string3=str(self.inputdanci2.GetValue())string2=''l=string3.split()len1=len(l)if string1=='' or string3=='':self.result.SetLabel('检索失败,文件名以及检索单词不可为空,请重新输入')elif len1!=1:self.result.SetLabel('单词不能含有空格,请重新输入')else:try:f1=open(string1+'.txt','r',encoding= 'utf-8')lis=f1.readlines()except:self.result.SetLabel('文件不存在,请重新输入')else:count2=0for i in range(len(lis)):count=0print(len(lis))lis[i]=lis[i].split()for l in range(len(lis[i])):if lis[i][l]==string3:count=count+1count2=count2+1print('第%d行第%d个单词'%(i+1,l+1))string2=string2+'第%d行第%d个单词\n'%(i+1,l+1)if l==len(lis[i])-1:if count!=0: print('第%d行一共出现了%s%d次'%(i+1,'end',count))string2=string2+'第%d行一共出现了%s%d次\n'%(i+1,string3,count)if i==len(lis)-1:print('123456')string2=string2+'%s在文件中一共出现了%d次\n'%(string3,count2)self.inputfanyi.SetValue(string2)f1.close()f2=open('检索记录.txt','a+',encoding= 'utf-8')f2.write(string2)f2.close()self.result.SetLabel('检索完成,结果如上所示')
class jiansuojiluframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='位置检索',pos=(650,300),size=(400,300))panel=wx.Panel(self)wx.StaticText(parent=panel,label='检索记录如下:',pos=(20,20),size=(300,20))self.inputfanyi=wx.TextCtrl(parent=panel,pos=(20,50),size=(300,180),style=wx.TE_MULTILINE)f1=open('检索记录.txt','r',encoding= 'utf-8')string=f1.read()f1.close()self.inputfanyi.SetValue(string)
class lijuluruframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='例句录入',pos=(650,300),size=(400,300))panel=wx.Panel(self)wx.StaticText(parent=panel,label='请分别输入所要录入的单词以及例句:',pos=(20,20),size=(300,20))self.inputdanci=wx.TextCtrl(parent=panel,pos=(20,40),size=(150,20))self.inputfanyi=wx.TextCtrl(parent=panel,pos=(20,70),size=(300,20))self.buttonluru=wx.Button(parent=panel,label='录入',pos=(20,190),size=(100,30))self.Bind(wx.EVT_BUTTON,self.onbuttonluru,self.buttonluru)self.result=wx.StaticText(parent=panel,label='',pos=(20,150),size=(300,20))def onbuttonluru(self,event):string1=str(self.inputdanci.GetValue())string2=str(self.inputfanyi.GetValue())if string1=='' or string2=='':self.result.SetLabel('录入失败,请输入正确格式英文单词以及例句')else:conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='sys')cur=conn.cursor()cur.execute('insert into lijubiao(danci,liju) values (%s,%s)',(string1,string2))conn.commit()cur.close()conn.close()self.result.SetLabel('%s:%s\t录入成功'%(string1,string2))
class dancixiugaiframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='单词修改',pos=(650,300),size=(400,300))panel=wx.Panel(self)wx.StaticText(parent=panel,label='请分别输入所要修改的单词以及修改后的翻译',pos=(20,20),size=(300,20))wx.StaticText(parent=panel,label='欲修改的单词:',pos=(20,50),size=(80,20))wx.StaticText(parent=panel,label='修改后的翻译:',pos=(20,80),size=(80,20))self.inputdanci=wx.TextCtrl(parent=panel,pos=(120,50),size=(200,20))self.inputfanyi=wx.TextCtrl(parent=panel,pos=(120,80),size=(200,20))self.buttonxiugai=wx.Button(parent=panel,label='修改',pos=(20,200))self.Bind(wx.EVT_BUTTON,self.onbuttonxiugai,self.buttonxiugai)self.result=wx.StaticText(parent=panel,label='',pos=(20,150),size=(300,20))def onbuttonxiugai(self,event):string1=str(self.inputdanci.GetValue())string2=str(self.inputfanyi.GetValue())if string1=='' or string2=='':self.result.SetLabel('修改失败,单词以及结果不能为空值,请重新输入')else:conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='sys')cur=conn.cursor()cur.execute('SELECT * FROM Word where danci=%s',string1)row = cur.fetchone()if row:cur.execute('update Word set fanyi = %s  where danci = %s',(string2,string1))conn.commit()cur.close() conn.close()self.result.SetLabel('修改成功')else:self.result.SetLabel('没有该单词,请重新输入')cur.close()conn.close()
class lijuxiugaiframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='例句修改',pos=(650,300),size=(400,300))panel=wx.Panel(self)wx.StaticText(parent=panel,label='请分别输入所要修改的单词以及修改后的例句:',pos=(20,20),size=(300,20))wx.StaticText(parent=panel,label='欲修改的单词:',pos=(20,50),size=(80,50))wx.StaticText(parent=panel,label='修改后的翻译:',pos=(20,80),size=(80,50))self.inputdanci=wx.TextCtrl(parent=panel,pos=(120,50),size=(100,20))self.inputfanyi=wx.TextCtrl(parent=panel,pos=(120,80),size=(100,20))self.buttonxiugai=wx.Button(parent=panel,label='修改',pos=(20,200))self.Bind(wx.EVT_BUTTON,self.onbuttonxiugai,self.buttonxiugai)self.result=wx.StaticText(parent=panel,label='',pos=(20,170),size=(300,20))def onbuttonxiugai(self,event):string1=str(self.inputdanci.GetValue())string2=str(self.inputfanyi.GetValue())if string1=='' or string2=='':self.result.SetLabel('修改失败,单词以及结果不能为空值,请重新输入')else:conn=pymysql.connect(host='localhost',user='root',passwd='123456',db='sys')cur=conn.cursor()cur.execute('SELECT * FROM lijubiao where danci=%s',string1)row = cur.fetchone()if row:cur.execute('update lijubiao set liju = %s  where danci = %s',(string2,string1))conn.commit()cur.close()conn.close()self.result.SetLabel('修改成功')else:self.result.SetLabel('没有该单词,请重新输入')cur.close()conn.close()
class dancishanchuframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='单词删除',size=(400,300),pos=(650,100))panel=wx.Panel(self)wx.StaticText(parent=panel,label='请输入你想要删除的单词:',pos=(20,20),size=(300,20))self.inputdanci=wx.TextCtrl(parent=panel,pos=(20,50),size=(100,20))self.result=wx.StaticText(parent=panel,label='',pos=(20,100))self.buttonshanchu=wx.Button(parent=panel,label='删除',pos=(20,200),size=(100,40))self.Bind(wx.EVT_BUTTON,self.onbuttonshanchu,self.buttonshanchu)def onbuttonshanchu(self,event):self.result.SetLabel('')string=str(self.inputdanci.GetValue())if string=='':self.result.SetLabel('单词不能为空,请重新输入')else:conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='sys')cur=conn.cursor()cur.execute('SELECT * FROM Word where danci=%s',string)row = cur.fetchone()if row:cur.execute('delete from Word where danci = %s',string)conn.commit()cur.close()conn.close()self.result.SetLabel('删除成功')else:self.result.SetLabel('没有该单词,请重新输入')cur.close()conn.close()
class lijushanchuframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='例句删除',size=(400,300),pos=(650,100))panel=wx.Panel(self)wx.StaticText(parent=panel,label='请输入你想要删除的例句:',pos=(20,20),size=(300,20))self.inputdanci=wx.TextCtrl(parent=panel,pos=(20,50))self.result=wx.StaticText(parent=panel,label='',pos=(20,100))self.buttonshanchu=wx.Button(parent=panel,label='删除',pos=(20,200))self.Bind(wx.EVT_BUTTON,self.onbuttonshanchu,self.buttonshanchu)def onbuttonshanchu(self,event):self.result.SetLabel('')string=str(self.inputdanci.GetValue())if string=='':self.result.SetLabel('例句输入不能为空,请重新输入')else:conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='sys')cur=conn.cursor()cur.execute('SELECT * FROM lijubiao where liju=%s',string)row = cur.fetchone()if row:cur.execute('delete from lijubiao where liju = %s',string)conn.commit()cur.close()conn.close()self.result.SetLabel('删除成功')else:self.result.SetLabel('没有该例句,请重新输入')cur.close()conn.close()
class danciceshiframe(wx.Frame):def __init__(self,sup):wx.Frame.__init__(self,parent=sup,title='单词测试',size=(400,300),pos=(650,100))panel=wx.Panel(self)self.biaoti=wx.StaticText(parent=panel,label='生成测试题目如下:',pos=(20,20),size=(300,20))self.multiText=wx.TextCtrl(parent=panel,pos=(20,40),size=(330,110),style=wx.TE_MULTILINE)self.mText=wx.TextCtrl(parent=panel,pos=(20,160),size=(330,50),style=wx.TE_MULTILINE)self.difficulty=wx.StaticText(parent=panel,label='选择难度(简单,中等,难)',pos=(20,220),size=(150,20))self.buttonshengcheng=wx.Button(parent=panel,label='生成',pos=(230,220),size=(45,20))self.Bind(wx.EVT_BUTTON,self.onbuttonshengcheng,self.buttonshengcheng)self.buttontijiao=wx.Button(parent=panel,label='提交',pos=(280,220),size=(45,20))self.Bind(wx.EVT_BUTTON,self.onbuttontijiao,self.buttontijiao)self.inputdifficulty=wx.TextCtrl(parent=panel,pos=(170,220),size=(50,20))def onbuttonshengcheng(self,event):if self.inputdifficulty.GetValue()=='':self.multiText.SetValue('请输入难度再生成试题')else:if self.inputdifficulty.GetValue()=='简单':self.nanyi=1elif self.inputdifficulty.GetValue()=='中等':self.nanyi=2else:self.nanyi=3conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='sys')cur=conn.cursor()cur.execute('SELECT word FROM Word where difficulty=%s',self.nanyi)#self.lis=[]self.li=[]row = cur.fetchone()#print(row)while row:#self.lis.append(str(row[0]))self.li.append(str(row[0]))row=cur.fetchone()random.shuffle(self.li)print(self.li)self.lis=[]for ii in range(len(self.li)):self.lis.append(self.li[ii]+'___\n')self.string='这是一套难度为:('+self.inputdifficulty.GetValue()+')的单词测试题\n'for i in range(0,3):self.string=self.string+self.lis[i]self.multiText.SetValue(self.string)cur.close()conn.close()def onbuttontijiao(self,event):if self.multiText.GetValue()=='':self.mText.SetValue('暂未生成试题,提交个锤子')else:self.s=str(self.mText.GetValue())self.l=self.s.split()if len(self.l)!=3:self.mText.SetValue('你提交的答案数目与题目不对应,请检查后提交')else:conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='sys')cur=conn.cursor()cur.execute('SELECT count(*) FROM Word')r = cur.fetchone()ss='你的测试结果如下:\n'#print(r)#print(len(self.lis))for i in range(3):cur.execute('SELECT * FROM Word')r1=cur.fetchone()print(r1[0])print(self.li[i])while r1:if self.li[i]==str(r1[0]):if self.l[i]==r1[1]:print('1')ss=ss+'第%d道题是正确的\n'%(i+1)breakelse:print('2')ss=ss+'第%d道题是错误的,正确答案为:%s\n'%(i+1,r1[1])breakr1=cur.fetchone()print(r1)  self.mText.SetValue(ss)cur.close()conn.close()
if __name__=='__main__':app=wx.App()frame=priframe(None)frame.Show()app.MainLoop()

python利用mysql数据库实现一个中英文翻译程序兼单词试卷生成并改阅功能,并可以爬取有道官网进行在线翻译。相关推荐

  1. Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤

    Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤 文章目录 Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤 背景:LOL这款游戏有着大量的玩家,这个游戏里面人们津津乐道的皮肤,每一款 ...

  2. 【考公人的福利】Python爬取中公官网资料

    [考公人的福利]Python爬取中公官网资料 一.简述 二.代码 三.运行结果 一.简述 写这个代码的目的是能够高效率提取中公官网的资料,例如:申论.行测.面试热点.公安基础知识等.大家可以根据个人需 ...

  3. python爬虫爬取王者荣耀官网全部英雄头像(源码分享)

    这篇文章为源码分享,爬虫的分析过程请阅读文章 <用python爬取王者荣耀官网的英雄皮肤海报(含源码)> 源码 import requests import json from bs4 i ...

  4. Python爬虫实战 | (1) 爬取猫眼电影官网的TOP100电影榜单

    在本篇博客中,我们将使用requests+正则表达式来爬取猫眼电影官网的TOP100电影榜单,获取每部电影的片名,主演,上映日期,评分和封面等内容. 打开猫眼Top100,分析URL的变化:发现Top ...

  5. python爬虫爬取王者荣耀官网全部装备图片(源码分享)

    这篇文章为源码分享,爬虫的分析过程请阅读文章 <用python爬取王者荣耀官网的英雄皮肤海报(含源码)> 源码 import requests from bs4 import Beauti ...

  6. python爬取天眼查存入excel表格_爬虫案例1——爬取新乡一中官网2018届高考录取名单...

    有一种非常常见并且相对简单的网络爬虫,工作流程大概是这样的: 访问目标网页 提取目标网页内表格信息 写入excel文件并保存 初次实践,我决定尝试写一个这样的爬虫.经过一番构思,我准备把爬取新乡一中官 ...

  7. Node 插件 爬取王者荣耀官网英雄信息,并生成数据库

    文章结构 打开官网看接口地址 打开官网 游戏资料里的英雄资料,并打开后台 接下来是英雄技能 技能结构路径方便抓取 jQ的获取元素这里不细说 重头戏 抓包到到数据库 全部代码 看数据库 总结 打开官网看 ...

  8. Python爬虫之selenium爬取英雄联盟官网英雄皮肤图片下载到本地和保存到数据库

    从英雄联盟皮肤网站的网页源代码中获取不到英雄的皮肤地址 通过selenium可以轻松获取想要的内容 源码展示 from selenium import webdriver from time impo ...

  9. python工商银行流水_python爬取银行名称和官网地址

    话不多说直接上代码: import re from urllib import request from urllib.request import urlopen import pymysql as ...

最新文章

  1. 漫画:如何用 K8s 实现 CI/CD 发布流程?
  2. 算法----------最长上升子序列(Java 版本)
  3. Ubuntu 使用国内apt源
  4. pymysql.err.OperationalError: (1045, “Access denied for user ‘system‘@‘::1‘ (using password: YES)“)
  5. Python中bytes和str区别详细介绍
  6. 31 socket客户端. 服务器 异常 语法
  7. 台湾印象之八:海角七号
  8. dbcc dbreindex server sql_DBCC DBREINDEX重建索引提高SQL Server性能
  9. RTX5 | 信号量01 - 信号量的使用
  10. Enterprise Library: Logging and Instrumentation Application Block概述
  11. CVS的几个学习小站及配置说明
  12. 【Spring】Spring Eureka Client 注册报 registration status: 204
  13. c语言利用fun求最小值,c语言:请编写函数fun(),他的功能是:求f(0)到f(50)的最小值,已知:f(0)=f(1)=1,f(2)=0,f...
  14. java 内部类 加载_Java 内部类基础介绍
  15. xshell文件传输乱码_xshell5 显示中文乱码解决方法,远程连接Linux CentOS
  16. python中右对齐_python右对齐的实例方法
  17. (SSM,JQUERY-EASYUI,MYSQL)快递物流系统
  18. 工作中遇到大小端数据存储格式
  19. RROR: Check hive‘s usability failed, please check the status of your cluster解决办法
  20. DATEDIF函数:

热门文章

  1. 阿里云物联网平台数据解析(python)
  2. 三点估算法 PERT计划评审技术
  3. Java后端开发技术栈
  4. 嵌入式人工智能唱响2020年中国嵌入式技术大会!
  5. 关于Java中的WeakReference类的笔记(弱引用)
  6. Java笔试 系列一
  7. Linux目录一个点.和两个点..的区别
  8. 人为什么要睡觉(胡说八道)
  9. [C#入门] 函数 | 方法
  10. NMock学习系列(三)--- NMock在DDD领域驱动的单元测试中的应用