掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5685|回复: 29

[新版发布] flask-mdict 架设自己的 MDict Web Server

[复制链接]
  • TA的每日心情

    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

    发表于 2019-3-22 12:21:41 | 显示全部楼层 |阅读模式
    购买主题 已有 92 人购买  本主题需向作者支付 5 粒米 才能浏览

    本帖被以下淘专辑推荐:

    该用户从未签到

    发表于 2019-3-22 13:33:29 | 显示全部楼层
    这就是远程查询嘛,好东东
  • TA的每日心情

    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

     楼主| 发表于 2021-8-8 13:13:22 | 显示全部楼层
    jutrshjiydx 发表于 2021-8-7 17:34
    8 [4 z4 \1 d0 \) L楼主呀,ubuntu的详细安装教程能不能发个呀?

    ' Z* Y) e9 g9 s5 f* I; V7 ?) x: P8 J. ^. g7 M9 W
    ubuntu 更简单,方法更多:
    " Y9 I. j0 M$ }1 b8 F
    : y! g) K2 A. j2 G6 f* y1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
    # R6 z  }8 d$ {( R% z3 X7 z4 o2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip
      x0 A4 b: L! _2 ~. w. _3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    5 c. k) F- m$ q5 H" {  k! F  c: Y, r" [0 b! z/ x: }; V8 f, G5 p* s
    4. 安装依赖包,pip3 install -r requirements.txt
    ) |" |; A" G. H  m( X# g" q5.建立 content 目录, mkdir content  j+ ~, B7 L; }$ i

    0 [& d1 W; ?; N% }# Q6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv, }3 ]/ @3 q) Z) q
    9 E1 D* e5 U2 _: V2 X
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响4 }9 a# E0 V6 a# w! c

    8 V7 R; S, f6 v9 g8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...
    1 c7 h: A5 g$ o  `) G& @( q9. 运行 flask run1 ]) H8 i3 |& O+ N
    10. 浏览器访问 http://127.0.0.1:5000/
  • TA的每日心情

    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

     楼主| 发表于 2019-3-23 20:52:57 | 显示全部楼层
    本帖最后由 zzzz_sleep 于 2019-3-23 20:55 编辑
    9 q5 b' T8 k4 w5 x6 N1 y1 H
    Budha 发表于 2019-3-23 17:24, z7 `& @  ]4 H/ o5 v  D7 |
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    . n) u. U5 [" j$ V1 c0 N" b1 q2 _可以办到,但主要功能不是我提供的
    0 Y# r" D% ?4 z/ }6 X' K  s4 Q2 R/ l* c" f. @7 Z: G; [. p
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    / Z3 r- K0 @: o7 ^2. 在家里 AP 路由上做地址转换
    4 ]# _) e2 s: D' Z    例如,映射外部端口 5000,到家里内网  <pc_ip>:5000
    + ]* ^1 F/ v( k/ _! q% r6 o; P+ ~0 ]
    1 Z0 E- k3 |# d; D, W* S# f注意:
    5 `, D6 j) p; C0 K   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以
    , `, l+ c1 t1 I/ E  @   2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决
    , e  ]  Y! C6 w# f& `' n3 K   3. 映射的外网端口不能是 80,或 443 ,ISP 禁止6 R, W+ N9 a% ?6 R- U! D) A3 ]- m
    " _) m( F7 M0 |4 v) q/ ]
    总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。
    : ~) K* t! O' U# G3 q  r0 E0 n9 o% ]! `& o' y
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 3 s9 o2 Y% u; V1 g0 U
    AttributeError: module ‘mdict’ has no attribute 'init_app'9 c; Z6 R  A- O+ _; r' {
    不能正常访问网页
  • TA的每日心情
    郁闷
    2022-10-17 16:40
  • 签到天数: 415 天

    [LV.9]以坛为家II

    发表于 2019-3-22 20:37:17 | 显示全部楼层
    真的不太懂,本人技术不行,可否简化了发布
  • TA的每日心情

    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

     楼主| 发表于 2019-3-22 21:00:46 | 显示全部楼层
    本帖最后由 zzzz_sleep 于 2019-3-22 21:27 编辑
    + |% _+ W' e1 q. {
    dengao 发表于 2019-3-22 16:57+ f" m) z( ]6 T  o
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 & E& o/ ^5 T" c) |) S7 M2 A9 a: O. W
    AttributeError: module ‘mdict ...

    1 t, b6 D* }3 I: L运行:flask run
    $ t0 h/ V9 T! g$ k/ @试试
  • TA的每日心情

    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

     楼主| 发表于 2019-3-22 21:26:58 | 显示全部楼层
    - x! c$ z& i: `, {' e
    这个版本有点问题,我已经更新,请重新下载,链接不变' j8 U$ t( O% t

    ) _1 v$ h4 @) e7 B5 Y, H( `
    4 I: n1 ~) t( K& K3 k) I
    - L5 H% [* ~% Y  T% A: p, a& U$ q
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-23 09:25:12 | 显示全部楼层
    楼主我运行了falsk run 后,访问http://127.0.0.1:5000,屏幕上出现了提示:“127.00.1:5000拒绝了连接,请查看代理服务器和防火墙设置”
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-23 09:45:42 | 显示全部楼层
    楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还要进一步要怎么设置,使我的手机跟电脑处于一个网络?
  • TA的每日心情

    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

     楼主| 发表于 2019-3-23 13:22:54 | 显示全部楼层
    本帖最后由 zzzz_sleep 于 2019-3-23 13:24 编辑 " j; c3 D$ r1 Q4 I
    Budha 发表于 2019-3-23 09:45
    9 O+ `2 J4 ~+ z. u0 h, s0 t1 O; A# E楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...

    - D/ [/ U6 R0 |$ p0 nhttp://127.0.0.1:5000 只能用本机访问
    7 _8 c1 v6 m) Q
    - b' E% u* n9 z' j) {% P' K如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/
    0 w; R$ x% Q, z  b改为% V6 m0 t2 c. O
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

    # Q! }$ g; }! t0 e9 I' W
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-23 14:44:15 | 显示全部楼层
    我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件,怎么改?
  • TA的每日心情

    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

     楼主| 发表于 2019-3-23 15:35:51 | 显示全部楼层
    本帖最后由 zzzz_sleep 于 2019-3-23 15:39 编辑
    ) }; A# [" V4 a* c
    Budha 发表于 2019-3-23 14:44
    * u3 l$ n2 @& O3 Y; O我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...
    1 M2 Z9 h! h+ q
    如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0
    7 C0 b! x  A; P6 k" l' _2 [! N4 g( ~( k& o
    如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径
    4 q; @0 g# M) t0 y( V' z
    2 H$ H6 k4 M  k& ]7 D; E查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/+ {2 b$ s  e" Y+ O8 O" V) i, g
    请重新下载 mdict 源码文件,刚修复一个界面问题。4 I/ \- \4 d- k9 \
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-23 15:47:26 | 显示全部楼层
    楼主超赞,多谢搞定了
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-23 17:24:41 | 显示全部楼层
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以实现吗?
  • TA的每日心情
    奋斗
    2022-6-1 19:02
  • 签到天数: 377 天

    [LV.9]以坛为家II

    发表于 2019-3-23 19:07:51 | 显示全部楼层
    本帖最后由 simonfire 于 2019-3-23 19:35 编辑 . I& }: Q4 |4 q4 ~8 C8 _3 P8 |
    Budha 发表于 2019-3-23 17:244 v+ M! e6 Z( X. ~$ w* {4 y
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    + M8 H- K. p2 W8 {0 [8 R
    这个和程序没关系,关键在于你能不能远程访问家里的电脑# C" i' D" e0 c" O. R5 _
    6 r2 I( r/ k" W& G, K
    " t& j8 W9 x# ]% n, _1 U
    在Ubuntu上简单试用了一下,很不错。8 e5 e) @) u3 {1 {
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑   [6 G# E# r& \! X

    6 b/ V2 v# Z% B) B: d& d词典code一定要规范,是不是做到xhtml标准的那种程度?
    & P/ c5 D+ E( p6 I8 K还有就是,可不可以做成直接支持mdx的txt源码?并且进一步优化源码的支持,例如词头有good|well|best三个同义词,用“|”符号进行分隔,用以替代link@@@的功能,查这三个词都是指向good这个词头,这个功能在babylon、stardict、lingoes都是有的,这个功能对于制作小语种的同义词非常好用。
  • TA的每日心情

    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 05:29:36 | 显示全部楼层
    流星冲击 发表于 2019-3-23 23:32
      R8 ]$ V9 O; M# e词典code一定要规范,是不是做到xhtml标准的那种程度?
    # ]1 E. d! C; ?2 s4 o6 j+ E还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...
    ' |6 H$ N/ R5 i: y
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    9 p  d& Z' u, G& `3 M1 l+ n4 P确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。
    ) V% {' t; K) ]; n0 A1 o3 o& ~' S2 x
    , F& c. K3 X2 |1 v4 J3 Gtxt源码没做过,不清楚,但理论上可以,但可能会牺牲通用性。HTML 软件原生支持,TXT 格式千变万化,没有统一标准,支持性就差了
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-24 05:48:07 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 05:29' J- [, p( p* p7 v" Z
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    ' F# x" h; |, Q确切的说,是的。因为词典code是 HTML 代码,各大 ...

    3 V0 M) `- }2 r0 g/ l2 F3 {mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文件)然后读取内容。
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 07:37:11 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-23 20:52
    : T0 n+ y3 u6 R可以办到,但主要功能不是我提供的  p# [9 f) e# C, R

    # m& `- G* B' y4 {' Y; v1. 首先,运行我的程序,家里内网的机器可以正常访问
    " I. u; H7 A" d3 f$ }- z
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情况,这样设置的话是不是要简单点?
  • TA的每日心情

    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:09:59 | 显示全部楼层
    Budha 发表于 2019-3-24 07:37
    * {2 }$ e9 m' l2 [9 q* ]谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    " ^6 B; s' `, Y

    6 I* f  ?* K2 z" n& @7 O3 ^是简单些,但是会危险些
      L: G( ]7 Y* Z, R9 O/ ]; I2 M, E5 p% b2 _, P8 V
    简单:
    : ?) E9 x! q& ?" k- Y直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射
    , P5 ^( B. l0 n% Y$ U) b5 J0 d3 U$ W& B
    危险:* N  [& _! t" m1 u. H5 C& ~
    PC 直连到 Internet 上,没有经过防火墙隔离(Windows自带的不算)容易招到网络攻击,windows 补丁不能及时更新,容易被人攻入
  • TA的每日心情

    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:18:08 | 显示全部楼层
    流星冲击 发表于 2019-3-24 05:485 Y8 }2 R8 e# V# V0 ^, p$ L8 f2 L% g
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    ( @" e% ]# g7 T4 ~' H
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。% y: ^0 K$ B7 g7 V7 i
    : _) h% Z9 O9 L& C
    这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    ! v) y% d5 W' V: d静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    7 J6 L+ ?$ r: O3 }
    4 X7 @! j2 d) o, z1 ~2 b; s* c! K显然第二种方法更有效率,用户体验更好。
    : Z8 p( i) k' ~' Q
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09
    9 t! `  F% E- h* c# O是简单些,但是会危险些
    , c8 e( T3 T$ I* C' }0 J) w2 G8 l6 \% |- _7 u( V( n
    简单:

    : W0 K# q" S% Z- h+ g& i9 Q我看了下一共有5个地址
    ; O5 x. l- a# V7 B1.物理(mac)地址
    ! |% Q. i; _( V: L7 j  T" Z2.ipv4地址
    ( ^) P* o$ t% w" O) D* I3.ipv6地址
    # \6 U- M7 D; u4.默认网关+ ?# h* j9 j" p1 p: R& Y% p, j
    5.dns服务器- d" F2 J4 _7 ^; K2 ~4 t
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16% J$ ?7 X6 z  O$ k) i; j. J6 a
    我看了下一共有5个地址! k5 `+ |' Q  c4 C; Q$ Q3 E
    1.物理(mac)地址
    9 m1 R& A0 Q$ g% Y, A% _: f2.ipv4地址

    5 \! I( W$ l: e* t6 N5 s2.ipv4地址+ m7 e! I) f7 q8 e- ]7 G
    $ N& h5 D' X+ f. |! E' r+ F
    ipv4:5000
  • TA的每日心情
    开心
    2021-4-11 18:44
  • 签到天数: 88 天

    [LV.6]常住居民II

    发表于 2019-6-22 23:07:37 | 显示全部楼层
    这么巧? 昨天顺手自己写了一个django版的。哈哈。仅仅支持txt,每次查询都动态生成转成html条目。就不发表了。
  • TA的每日心情
    开心
    2024-4-13 19:35
  • 签到天数: 679 天

    [LV.9]以坛为家II

    发表于 2020-12-2 15:29:41 | 显示全部楼层
    谢谢,下来看看!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2024-4-27 20:42 , Processed in 0.109526 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

    快速回复 返回顶部 返回列表