搭建词典服务器的教程

大家好哇,我是说的道理,今天来点大家想看的东西,教你搭建一个词典服务器。那么首先何为词典服务器,他就是把你的词典数据传到你的服务器里(你自己的电脑也可以是这个服务器),然后通过一个接口支持查询单词的功能,简单地说,就是一个线上的词典,但是词典的数据是你自己做,可以是mdx词典。

特点

优点

  1. 数据永远是你自己的,词典的数据,查询历史,不怕有一天突然消失。
  2. 不用安装第三方软件来查看,比如goldendict等等,你只需要一个浏览器,你甚至连网都不需要(前提是你用手机开个热点,让另外一个设备连接)
  3. 自定义化程度很高。比如我开的 http://126.74.227.80:5000/ 他这个网页本来是没有返回按钮的,你可以自己加一个,本质上html前端的东西你都可以自己定义。
  4. 功能完善,包括放音频,视频等等。

缺点

1. 查询效率比较慢,输进去一个单词可能要一两秒甚至更久才能加载出来。 2. 很多人没有服务器,或者公网IP,就只能在局域网,比如同一个WiFi底下访问了。《我的世界服务器也是这样的》

使用方法

你可以在装有词典的服务器上下一个goldendict等软件,当你出门,或者是用另一台电脑,不想再花硬盘装那么大的词典数据时,就可以访问你的服务器来进行查询。

接下来说说搭建方法。

搭建方法

材料

  • Python3
  • 能上网的电脑(or你买的服务器)
  • Flask-MDict

步骤


  1. flask-mdict.zip (4.7 MB)

下载我修改过的代码。
2. 解压缩。之后在有requirements.txt 的文件夹打开CMD,输入pip install -r requirements.txt下载依赖。
3. 将你的词典文件放入加压出来的content文件夹里面,你可以放一个词典文件夹,就像这样



它会自动查找mdx词典文件,需要注意的是,有的词典不支持,因为读取的时候有问题,但是只是少数,这时候就得自己选择了,判断是否支持的方法在下面。
4. 在CMD里打ipconfig /all 找到 IPv4 Address ,然后打开路由器设置,设置端口映射,将外部端口映射5000到内部端口5000,然后把刚刚的 IPv4 Address 复制到ip位置去

就像这样。
5. 点击StartDictServer.bat,如果有词典不支持他会显示出在加载什么词典时出了错,你可以把这个词典拿掉,当他出现Serving on http://0.0.0.0:5000的时候,就说明成功了。
6. 此时拿起你的手机,链接到和电脑一个WiFi下,输入 刚刚的 IPv4 Address:5000就能访问了,比如192.168.0.102:5000.就可以看到了
7. 此时假设你有公网ip,或者是服务器,知道公网ip,就可以不用限制于WiFi局域网了,直接访问你的公网IP:5000就行,但是国内一般不给公网ip,你可以打电话申请,或者使用内网穿透等技术,得到一个公网IP就能在家外边用流量访问了。

7 个赞

可是我用macOS怎么办呀。
那个192.168.0.103是ipv4吧?和126.74.227.80(刚才那个部署到公网)一样的道理吧?

你是mac也可以用,但是吧.bat文件后缀改成.sh就行,他里面就一句命令,Windows macos通用的

192.168.0.103是我的本机IP也就是在內网的ip地址,你部署到公网之后设置好端口映射,将外网ip对5000端口的访问映射到内网ip5000端口的访问就行

第四步就是干这个的



hmmmm,没有办法直接在终端里执行

1 个赞

不行的话你直接在那个文件夹输入python .\run.py

而且你应该是没给这个.sh添加权限 chmod777试试

报错的原因是什么?host里写本地ip地址吗?

卧槽,忘了在requirements写gevent了,你用

pip install gevent

安装一下gevent,在终端里输入,然后host是写本机ip地址,但是0.0.0.0自动映射到本机ip,你写本机ip是没问题的,但是就是怕什么时候重连一下WiFi本机ip会变,填0.0.0.0自动映射的话就不用你手改了,不然每次得改一下


这是什么情况呀?

wc,这macos还是有点烦,系统把5000端口占用了,你换几个端口试试

刚才搞定了,那个公网IP如何获取?如何设置?

Flask-MDict 有个坑,href 包含 ‘/’ 就无法正常跳转,比如

<a href="entry://24/7">
1 个赞

公网ip得联系网络运营商获取。自己局域网玩玩就好了。

其实也可以内网穿透

可我想给我的老同学玩玩,内网穿透有什么工具推荐的吗?除了ngrok​:joy:
terminus这个软件怎么样?是不是跟内网穿透类似的?

内网穿透-零成本让家里电脑成为Web服务器 - 知乎 你看看这个

那词典如何调整顺序?

着只能自己改py代码了