掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5683|回复: 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
    0 v9 J+ L" {$ d5 `' N楼主呀,ubuntu的详细安装教程能不能发个呀?
    7 I1 H  n- w: y

    ; x4 w$ k6 @* q$ Nubuntu 更简单,方法更多:
    + X8 c5 w) _( e
      Q& A7 f+ W; J5 w" c% h; A1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget% ~. C$ M* x0 |/ @. l9 c" T4 x
    2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip
    + t( e  f1 U9 }( N3 b* _3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    , S, l0 B5 f$ N; U* S! X( m
    & ~: D/ \* T0 P5 b- f4. 安装依赖包,pip3 install -r requirements.txt+ j' f: J) Q' V& a. k3 f
    5.建立 content 目录, mkdir content
    * f  R9 i+ X9 p5 S
    4 Q! @4 I& l) a1 i6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv, F- b, _( O" V+ R( ]
    . K. U4 |. t7 _9 I& q, e: P
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响/ w! c$ n* |& ^. a# ~
    1 Y; z4 n/ s$ u; d2 h9 K
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...3 u- z1 \" q. `9 ]" R
    9. 运行 flask run
    % N6 r0 V% @" J' ^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 编辑   i) G# _/ D$ U, H
    Budha 发表于 2019-3-23 17:24
    2 K8 |4 \9 r9 U1 Z3 K0 S我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    5 n/ a  X! Z+ o+ I( D可以办到,但主要功能不是我提供的! l" }, T6 w& Q' E0 ]

    $ c# i1 ?7 q: X- |2 S1 o1. 首先,运行我的程序,家里内网的机器可以正常访问
    ; r3 S4 C* N4 M; o* F2. 在家里 AP 路由上做地址转换
    2 Z3 z+ g9 C8 p7 U- g    例如,映射外部端口 5000,到家里内网  <pc_ip>:5000
    , F1 {# [5 q# [( x  }
    6 y/ k  [5 o; A: S- u  a注意:
    ! S$ M6 R% f- h1 i   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以, W6 _7 o: I% {( q% o1 G$ {& `; ~) V
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决# O- ~; J; @/ r
       3. 映射的外网端口不能是 80,或 443 ,ISP 禁止
    7 ]. _1 |  ^+ p" y: Q9 K* ^5 }9 ^$ }6 P3 c+ L* F+ h, U7 O* C
    总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。
    + V# J! i0 V; d& [: K( @; V; l' }% d0 f' y
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 4 u9 A0 s- d$ }) m
    AttributeError: module ‘mdict’ has no attribute 'init_app'
    + I! e/ ?( t# g* L不能正常访问网页
  • 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 编辑 6 [1 E) i& E. Y" ~7 W; g* Z
    dengao 发表于 2019-3-22 16:57' w: o- P! O. k
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 ! O% `  Y, o$ E7 ^* }( R* s
    AttributeError: module ‘mdict ...
    % g3 ]! s, M- B$ }0 z* R' D) J; S
    运行:flask run0 d5 o) G5 s! t. f$ {
    试试
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-22 21:26:58 | 显示全部楼层

    6 _0 e+ V# v4 K- t* z$ ^这个版本有点问题,我已经更新,请重新下载,链接不变
    & x4 F8 p) Z- x/ Q2 q: I' f( r0 ?* ~2 l) m0 T4 o" L9 s

    5 G" k) s* F! H7 x! G9 ?
    9 K& _9 F' V" Z+ Z! K4 s' r. F$ P
  • 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 编辑 7 O, \- x, _2 @0 r" @* N
    Budha 发表于 2019-3-23 09:456 g( e( e- G, i# }  X9 a
    楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...

    * ], H3 ?# u! Z& b7 hhttp://127.0.0.1:5000 只能用本机访问& ^/ @9 Z, m  k; G3 L: _( I

    5 k. \, T8 C  D. X) k! f如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/5 w/ c  {# q' k; _
    改为
    % h. e4 ~- g" ]4 J
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

    5 d" a4 A0 [2 N  X
  • 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 编辑 : J. \5 ?: j# Z5 Y4 Y
    Budha 发表于 2019-3-23 14:44
    + U0 y. d4 `" v7 a5 T6 b% s我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...

    1 Y8 u- s. b4 g  S如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0
    ' k" L4 P" c% `# `/ r+ t0 Q# M3 F+ ~- \  k$ Z5 f; q6 o
    如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径
    * W1 ~! i4 E5 l: u7 x' t* T- l+ Z+ M' A' E/ t6 Z% `# q6 m
    查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/! C0 v5 ~1 x* D# }
    请重新下载 mdict 源码文件,刚修复一个界面问题。  h, N3 T5 ^2 H$ o) T; I' K
  • 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 编辑
    . K/ L/ h- h0 H& R. L4 w$ K
    Budha 发表于 2019-3-23 17:24
    # j& J) S8 M5 s$ e0 [% k2 a我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    , z2 B/ G; q9 ~
    这个和程序没关系,关键在于你能不能远程访问家里的电脑
    + J. @( B" d" P  n: }7 `! y' U' o5 f: w5 m/ v
    " T, t6 ^1 f  J$ ]9 n
    在Ubuntu上简单试用了一下,很不错。8 F+ O5 d/ A6 U2 s9 K
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    % m* j6 I5 P( `( u+ ~5 a* ]1 v: |# j* ~
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    : o2 T" p' I  T7 P6 N0 Z4 T* s还有就是,可不可以做成直接支持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
    & R& L8 f/ a8 W( N" i( c0 M词典code一定要规范,是不是做到xhtml标准的那种程度?/ h/ j& A6 g1 t" ]! n
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...
    ( k( P& a7 L( \
    词典code一定要规范,是不是做到xhtml标准的那种程度?8 l$ W9 B8 e) T; g$ i0 p
    确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。& _5 e$ `& e' A8 @* }

    3 C2 A' {8 ~' t$ M/ Ctxt源码没做过,不清楚,但理论上可以,但可能会牺牲通用性。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) I0 z( W5 R1 g1 Y( o% b( z0 E
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    : D" i" T& \& b7 s* L$ j2 o" u确切的说,是的。因为词典code是 HTML 代码,各大 ...
    ) E' p; L7 V+ p; `. c! F0 b
    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
    , n$ }; j( v% X( v' }. X. F1 x& d可以办到,但主要功能不是我提供的5 R  [& h7 _3 t0 o
    0 F- X5 j+ x) p( x/ z! c* W
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    9 S5 B6 u  \3 l; [# o
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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; Q# ]9 H- `1 ?8 w# R0 g8 y
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...

    8 W9 O1 T* _1 {3 |$ p- t
    , j& B% _- Y, O, t/ E/ d- W是简单些,但是会危险些
    6 w: t. b1 x- P9 J. h: ]. F
    3 w- o  Y5 g* L  W8 \简单:2 f& ]7 n2 d. e* W5 A( _; v
    直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射6 J# h* d0 T3 B! C$ Z- x$ j

    ' H5 e; _/ W! {' o2 B' c7 o& V危险:
    . t: X: w; t! N, M8 F! r& _PC 直连到 Internet 上,没有经过防火墙隔离(Windows自带的不算)容易招到网络攻击,windows 补丁不能及时更新,容易被人攻入
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:18:08 | 显示全部楼层
    流星冲击 发表于 2019-3-24 05:48
    ) F5 F  A7 Q, h: W5 f1 @$ ^mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    ! q6 I' H+ f7 v+ ~/ d+ ^
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。
    - b1 O' M  |# w" P, x
    1 S! d4 j. q$ ~) M0 J. p# E5 E; A这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
      o7 E+ G! g* Y% k2 }% E- t静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递" b5 C/ ]0 d- k' R0 |

    & w% Y: N  ]2 h+ ?2 ?& E  o显然第二种方法更有效率,用户体验更好。# Z, V# W1 S- W6 m' }
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09* f/ S# c0 J9 _  m9 Y* H
    是简单些,但是会危险些3 o1 \: o* z% [, M" t

    - d1 b% [/ D8 X1 R# n3 }简单:
    5 O# y% c5 \. ]' O1 \1 T3 i
    我看了下一共有5个地址
    6 y4 o/ h0 t" {0 n4 D9 s1.物理(mac)地址
    % H0 B4 t5 J3 }" T: C2.ipv4地址. H* P0 N9 P4 a: k
    3.ipv6地址
    8 t6 Z* l* W' w# Z4.默认网关
    + w9 y. S$ u( x- H, q0 z& e2 W* K- s5.dns服务器" k6 m9 P- E1 }' p  X/ U& E: p
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16/ F6 k8 s7 f  N5 k1 i
    我看了下一共有5个地址' l4 G+ }. k5 ]* ]
    1.物理(mac)地址
    & q0 f$ b/ @% R6 o% ]3 x: z" ?: f* g2.ipv4地址

    : F6 @) Q2 C  L8 s' E6 k- S2.ipv4地址
    ! S- y( B" X% F3 l
    ; ]1 e+ V3 [6 N8 z( Dipv4: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 18:42 , Processed in 0.059435 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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