什么是 django-mdict ?
django-mdict
不是词典软件,是词典查询的脚本工具,主要目的是解决词典数量多,手机容量不足的问题,是对其他词典软件局域网在线查询功能的补充,是用django
实现的mdict
词典查询工具(支持mdx
、zim
格式)。请优先使用正式软件,如goldendict
、mdict
、欧陆
、dicttango
等。
老苏去年介绍过用 Python Flask
框架实现的 mdict
词典,而这个是用 Python Django
框架实现的,本质上是一样的东西,至于怎么选择,看你自己的喜好了
文章传送门:Flask-MDict搭建在线Mdict词典服务
构建镜像
如果你不想自己构建,可以跳过,直接阅读下一章节
官方提供了 Dockerfile
文件,但没找到镜像,所以需要编自己编一下,但是老苏编完之后发现有其他网友已经编过了 😂
构建镜像和容器运行的基本命令如下👇
bash
# 下载代码
git clone https://github.com/jiangnianshun/django-mdict.git
# 或者加个代理
git clone https://ghproxy.com/github.com/jiangnianshun/django-mdict.git
# 进入目录
cd django-mdict
# 将 Dockerfile 放入当前目录
# 构建镜像
docker build -t wbsu2003/django-mdict:v1 .
# 运行容器
docker run -d \
--name django-mdict \
-p 18000:8090 \
-v $(pwd)/library:/code/media/mdict/doc \
wbsu2003/django-mdict:v1 \
python3 manage.py runserver 0.0.0.0:8090 --noreload
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 django-mdict
,选择第三个 wbsu2003/django-mdict
,版本选择 latest
。
卷
在 docker
文件夹中,创建一个新文件夹 django-mdict
,并在其中建一个子文件夹 library
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/django-mdict/library |
/code/media/mdict/doc |
存放字典文件 |
端口
本地端口不冲突就行,不确定的话可以用命令查一下
bash
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
18000 |
8090 |
默认没有对外暴露端口
需要点 +
号添加
环境
没有用到环境变量,但用到了命令行 python3 manage.py runserver 0.0.0.0:8090 --noreload
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
bash
# 新建文件夹 django-mdict 和 子目录
mkdir -p /volume1/docker/django-mdict/library
# 进入 django-mdict 目录
cd /volume1/docker/django-mdict
# 运行容器
docker run -d \
--name django-mdict \
-p 18000:8090 \
-v $(pwd)/library:/code/media/mdict/doc \
wbsu2003/django-mdict \
python3 manage.py runserver 0.0.0.0:8090 --noreload
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
yaml
version: '3'
services:
app:
image: wbsu2003/django-mdict
container_name: django-mdict
restart: unless-stopped
ports:
- 18000:8090
volumes:
- ./library:/code/media/mdict/doc
command: "python3 manage.py runserver 0.0.0.0:8090 --noreload"
然后执行下面的命令
bash
# 新建文件夹 django-mdict 和 子目录
mkdir -p /volume1/docker/django-mdict/library
# 进入 django-mdict 目录
cd /volume1/docker/django-mdict
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
运行
在浏览器中输入 http://群晖IP:18000/mdict
就能看到主界面
如果已经放入了 mdx
格式的词典文件,会显示在左侧
关于
mdx
文件及获取,可以看老苏之前写的 Flask-MDict搭建在线Mdict词典服务
可以直接查询
再放了一个离线维基 zim
格式文件
关于
zim
文件及获取,可以看老苏之前写的 离线维基百科阅读器Kiwix Serve
注意,每次增加了字典文件,需要重启容器才会被识别
管理员
创建管理员账号,需要进入容器内操作
bash
# 进入容器
docker exec -it django-mdict /bin/sh
# 创建管理员
python3 manage.py createsuperuser --username 用户名
#示例
python3 manage.py createsuperuser --username laosu
需要填邮件地址和密码
密码不能少于
8
个字符;
在浏览器中输入 http://群晖IP:18000/admin
就能看到登录界面
登录后的主界面
现在可以增加用户了
或者维护字典
参考文档
jiangnianshun/django-mdict: django-mdict是django实现的mdict词典查询工具。
地址:https://github.com/jiangnianshun/django-mdict
Could possible to create a docker for it? · Issue #4 · jiangnianshun/django-mdict