python:mdict + bottle = web 查询英汉词典
pip install readmdict ; 参见:使用Python调用mdx字典文件进行查词
安装 Mdict 去 MDict
pip install bottle
mdict_bottle.py
# -*- coding: utf-8 -*-
""" web server 用于查询英汉词典 """
import os
import sys
from readmdict import MDX
from bottle import route, run, post, request, static_fileos.chdir("/mdict/doc")
# 加载.mdx文件
filename = "oale8.mdx"
mdx = MDX(filename)
headwords = [*mdx] # 单词名列表
items = [*mdx.items()] # 释义html源码列表
n = len(headwords)
m = len(items)
if n == m:print(f'{filename} 加载成功:共{n}条')
else:print(f'ERROR:加载失败 {n}!={m}')sys.exit(1)@route('/')
def server_static(filepath="index.html"):return static_file(filepath, root='./')@route('/<filepath:path>')
def server_static(filepath):return static_file(filepath, root='./')def english_han(txt):""" 英译中 """if not txt.isascii():return 'Maybe text is not english'word = txt.encode()word1 = txt.capitalize().encode() # 第1个字母变大写global headwords, itemstry: # 查词,返回单词和html文件if word in headwords:wordIndex = headwords.index(word)else:wordIndex = headwords.index(word1)word,html = items[wordIndex]result = html.decode()result = result.replace('<img src="','<img src="/data/')result = result.replace('entry://', '/trans?txt=')#result = result.replace('sound://', '/data/')except:result = f"<h3>{txt} is not in word_list.</h3>"if len(txt) > 3:alist = []word = txt.strip().lower() # 字母变小写for hw in headwords:hws = hw.decode().lower()if hws.startswith(word):alist.append(hw.decode())if len(alist) > 0:result = '<h3>'+ ', '.join((alist)) +'</h3>'else:result = f"{txt} length too short.(length>3)"return result@route('/trans')
def trans():""" GET 英译中"""try:txt = request.query.txtexcept:return '1: get txt error'if len(txt.strip()) ==0:return 'text is null'print(txt)result = english_han(txt)return result@route('/trans', method='POST')
def trans():""" 英译中 """try:#txt = request.forms.get('txt')txt = request.POST.get('txt')except:return '1: get txt error'if len(txt.strip()) ==0:return 'text is null'print(txt)result = english_han(txt)return resultrun(host='localhost', port=8888, debug=True)
index.html 页面加载添加:监听iframe网页点击事件
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>查询英汉词典</title><script src="jquery-3.2.1.min.js"></script>
</head>
<body><form name="form" id="form" action="trans" method="POST" target="iframe"><input type="search" name="txt" size="30" placeholder="请输入 a word"><input type="submit" name="english_han" value="英译汉"></form><p></p>
<div id="result"><iframe name="iframe" id="iframe" width="90%" height="450"> </iframe>
</div><audio controls id="sound">it is null.</audio>
<script type="text/javascript" language="javascript">// 页面加载添加$(document).ready(function(){var listener = window.addEventListener('blur', function(){if (document.activeElement === document.getElementById('iframe')){$('iframe').contents().find('a.fayin').click(function(e){event.preventDefault();var a = $(this);if (a){var addr = a.attr('href');if (addr.indexOf('sound://')==0){var sound = document.getElementById('sound')if (sound.paused){sound.src = "/data/" + addr.substring(8);sound.play();}} else {alert('href='+addr);}}})} });})
</script>
</body>
</html>
运行 python mdict_bottle.py
python:mdict + bottle = web 查询英汉词典相关推荐
- python:mdict + flask = web 查询英汉词典,汉英词典
pip install pinyin; pip install snownlp; pip install flask pip install readmdict ; 参见:使用Python调用mdx字 ...
- python:SL4A ecdict.py 英汉词典查询
安卓手机上安装 sl4a_r6.apk , 可以执行 python 2.6 . ecdict.py 英汉词典查询程序放在 sl4a/scripts/ # -*- coding: utf-8 -*- i ...
- python软件界面翻译_python英汉词典,在线翻译器,带GUI界面下载
使用请求模块获得的职位信息有道词典网页,BeautifulSoup获得所需的内容,并生成gui界面通过tkinter模块.2. Python实现翻译工具git源代码地址代码如下:# !\/bin\/e ...
- Python基础笔记_Day14_Python图形化界面、Python GUI、tkinter、Python英汉词典
Day14_Python图形化界面.Python GUI.tkinter.Python英汉词典 14.01_Python语言基础(Python实现英汉字典)(掌握) 14.02_Python语言基础( ...
- python英汉词典
# -*- coding: utf-8 -*- """ Created on Tue Dec 18 01:06:45 2018@author: Administrator ...
- 通过游戏编程学Python(6)— 英汉词典、背单词
通过游戏编程学Python 通过游戏编程学Python(番外篇)- 乱序成语.猜单词 通过游戏编程学Python(5)- 猜成语(下) 通过游戏编程学Python(4)- 猜成语(上) 文章目录 通过 ...
- python制作英汉词典_Python基于有道实现英汉字典功能
本文实例讲述了Python基于有道实现英汉字典功能的方法.分享给大家供大家参考.具体如下: import re,urllib aa="http://dict.youdao.com/searc ...
- Python对英汉词典的若干操作(#10)
从网上下载了一个英汉词典txt版,整理后放在了py文件同一目录下,取名为"英汉词典".后面要用正则表达式处理这些单词. 1.读取英汉词典前10行 f=open("英汉词典 ...
- [Silverlight]使用MVVM模式打造英汉词典
最近比较关注MVVM(Model-View_ViewModel)模式,该模式十分适合WPF/Silverlight的开发.出于练习的目的打算使用Silverlight做个英汉词典(可能是由于近来疯狂的 ...
最新文章
- ICRA 2021| SKD:基于显着性估计的点云关键点检测
- SQL server2000数据库备份和还原语句
- js 用正则表达式模仿SQL like % 的模糊匹配
- CentOS7配置JAVA环境变量
- c语言程序设计19,C语言程序设计19.pdf
- ArcSegment对象
- eclipse 中配置php的 XDebug调试
- OpenCV-Python实战(18)——深度学习简介与入门示例
- Struts2 标签库 控制标签的使用 if append generator iterator merage sort subset
- geemap_01_安装geemap
- 20155204《网络对抗》Exp 6 信息搜集与漏洞扫描
- python common很久不用我都忘了一些函数了,给boss添麻烦了
- 2020 dns排名_《2020年全球DNS威胁报告》:DNS攻击平均损失高达92万美元
- pdcp层的作用_NR PDCP层介绍
- 某公司服务器故障导致数据库文件丢失的恢复过程
- KLG Europe选择BluJay Solutions为其提供全球运输管理和客户服务监控软件系统方案...
- WPS PDF转Word工具
- shell脚本小工具之万能解压和压缩器---实现思路
- python实现指定ip端口扫描
- .NET TCP服务端和客户端