掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 7480|回复: 29

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

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

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

    [LV.7]常住居民III

    发表于 2019-3-22 12:21:41 | 显示全部楼层 |阅读模式
    购买主题 已有 94 人购买  本主题需向作者支付 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  W) F$ v, Q1 t8 p1 M# s
    楼主呀,ubuntu的详细安装教程能不能发个呀?

    * k2 d7 `( L7 L8 @& x" e8 P: S/ I
    ' r3 u6 T6 ?' F2 g. j+ M- a$ J* nubuntu 更简单,方法更多:; F& S8 M2 M( Y& H3 H8 g

    # ^' f- q1 {1 d' A. k* D1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
    ) S5 M6 b8 C) e9 R0 ?! d. k2 @2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip 0 S5 |4 x3 J2 \8 f  q
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    + n4 j$ [2 _- x9 u1 J( L( C: Z6 W7 @7 }
    4. 安装依赖包,pip3 install -r requirements.txt
    3 {% D5 ^7 g: w. Z" g1 d9 B5.建立 content 目录, mkdir content8 k  d) T: a# N- l+ [  u. D
    ) n4 Y% W+ h! ?+ S2 j
    6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    $ S6 U" U( @+ |" \' M  _5 f7 i4 O8 t& p5 ~; y7 K
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响/ T+ B. G$ Q+ H: q8 K% z1 X& E, ^
    5 ^& m( \9 Y9 j' ]( k
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典..., p5 I& x: H) |: D3 R
    9. 运行 flask run
    * c: d! D, _/ v6 |5 s$ \2 G4 p+ h10. 浏览器访问 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 编辑
    6 R: @9 g5 P! o; o3 v9 _+ H
    Budha 发表于 2019-3-23 17:24
    : ~3 N, R4 `6 O" Z/ A1 j我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    ) K* x$ s0 ?% f& g- q: b
    可以办到,但主要功能不是我提供的
    $ G% }8 }& V5 v: d" l; r0 v$ t
    $ W2 a  Y% O- ]* B% a+ j1. 首先,运行我的程序,家里内网的机器可以正常访问
    2 N$ O0 H, s; Q' B9 ~2 A& J+ h' f2. 在家里 AP 路由上做地址转换
    $ I+ d8 j! w$ r% ^: r$ q' M    例如,映射外部端口 5000,到家里内网  <pc_ip>:5000
    % g" q7 Q; [8 W8 l) V" d" S
    2 J' |7 o9 r  |4 ]0 D) |( V: ~- K注意:
    6 z* S& B/ H7 z. F4 k. G   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以! y$ U& n# T& g8 O+ d3 \
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决
    2 ~9 m) S9 }5 s( R- V; d   3. 映射的外网端口不能是 80,或 443 ,ISP 禁止- m3 m, F, [+ v, [

    8 m+ u+ V/ V; o$ D: U总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。. k9 @/ ~$ h) M$ o$ n

    - `0 W! |/ Y" z3 b5 y8 C+ X% @
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    ' t9 w1 s* m+ }. w, [AttributeError: module ‘mdict’ has no attribute 'init_app'
    - k% [8 q- ]. y( G不能正常访问网页
  • 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 编辑
    - f; q! Z- e. B
    dengao 发表于 2019-3-22 16:57: G3 ~/ X. d$ t
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 0 G1 O* H4 W2 |. Q3 V7 S7 p# m5 I
    AttributeError: module ‘mdict ...

    # m- p8 i% H! q; ]7 k运行:flask run
    % X* ?- |& L! x9 D4 Y试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    * d7 K" \& `  G5 F这个版本有点问题,我已经更新,请重新下载,链接不变! |! i' R$ S7 G' B
    . r$ t: z$ Q9 @5 p2 B! D) W

    0 C8 K* d5 k& T8 q3 c% P
    5 F+ M, j7 }3 ]' q/ J7 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 编辑 * U; \) I4 x: v/ ^
    Budha 发表于 2019-3-23 09:45% @7 W, _; ]$ Y9 ?4 P* h
    楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    + g& @6 F' W0 L7 k0 i
    http://127.0.0.1:5000 只能用本机访问6 [8 O. `* L! y5 N& ]& V, Q
    + m5 n  d* w. b! [# t
    如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/  M7 B' }4 j: C# a( v" A
    改为
    ) M) e: x) ~. H! E" X9 R
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

    ! u9 J" J; d+ c
  • 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 编辑 0 X* z* L6 H( ]. O) p) i' j
    Budha 发表于 2019-3-23 14:44. [6 b  g5 i/ y5 Q0 ]4 `# B; N, O
    我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...

    , O6 Z7 {* I3 U$ b5 h- v如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0) z9 P- E( X" u! m! F% a. o
    6 B4 H# S8 A" o$ `# {, H
    如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径
    & l, Z" H& h1 L
    5 _) X% _) A0 Z. b) |查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/
    % i# D. r! P) s- Y8 Y请重新下载 mdict 源码文件,刚修复一个界面问题。
    - y( }% h6 X" P5 K- l
  • 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 编辑 8 f! F- N5 N- {
    Budha 发表于 2019-3-23 17:24$ R# {* A. i6 i8 q& v$ Y
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    - @4 j/ T. J" O& H" \: d% {这个和程序没关系,关键在于你能不能远程访问家里的电脑; E6 ~$ V4 L4 A- t

    4 Y. j" g9 Z3 V4 O- P' m
    + b1 n2 X) u/ R' ]4 c在Ubuntu上简单试用了一下,很不错。
    8 @6 L9 t1 F: \" @. b
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑 # C' `. H- s" ~8 B
    9 H, v+ }4 T8 x3 Z  x2 S- I
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    . Z2 p, V0 [* K: a1 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:326 [6 T/ P3 }; M, m. x) S3 H$ w
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    5 W. W7 t6 f3 h0 z* `( ]! ]- U还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...
    , m9 J% ^) v) m: T4 ~1 B5 `
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    - R* p2 D8 A7 O& o3 _' X4 m1 m2 U确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。
    ' e" `# b! O/ S3 }
    ' M8 E% ^4 A. H+ X' ?txt源码没做过,不清楚,但理论上可以,但可能会牺牲通用性。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
    / b! E0 @- p7 ]2 h# @词典code一定要规范,是不是做到xhtml标准的那种程度?0 r! \: J2 r/ S) y* J
    确切的说,是的。因为词典code是 HTML 代码,各大 ...

    3 R8 P" o) g. A' ^2 ?# L% Gmdx源码的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& w& Z% X- x0 m# ?8 W( C1 X2 @
    可以办到,但主要功能不是我提供的
    3 X$ c) T" ]$ P7 q7 s; T. y5 ^# b0 L2 P4 C- _
    1. 首先,运行我的程序,家里内网的机器可以正常访问

    $ j/ ^* K4 J. V9 H谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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
    + c+ O$ S. Z4 K+ F2 W' Z% ~谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    7 f! c7 I+ g0 i1 }& J8 }- A: n/ C+ t

      m( h' y- ?( e; r是简单些,但是会危险些
    " s2 t; s/ S$ l0 b! }* N& K6 E
    * L: E. S0 B% Z/ e7 m1 ]简单:  p) K/ H. D& E
    直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射1 p2 g9 @$ N1 r8 c
    / W& Q( x4 ?, ~( U$ O9 a1 l3 L
    危险:
    5 O! \9 U4 d  K$ E. J. r/ FPC 直连到 Internet 上,没有经过防火墙隔离(Windows自带的不算)容易招到网络攻击,windows 补丁不能及时更新,容易被人攻入
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:18:08 | 显示全部楼层
    流星冲击 发表于 2019-3-24 05:481 ?4 E+ y% e1 `/ V2 w- Y  Z
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...

    , ?3 ^% N; R; a" o- W是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。
    " K& o! e" s; w8 R8 @. g4 V% f5 A) J9 q2 Y( Y1 W4 u1 U5 u
    这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示3 i% _- Q2 N" i- Z3 p6 D- [0 O2 y
    静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    ) d$ w! g* `/ @: s' @5 u$ u  |1 p! H3 S  g3 ?0 C
    显然第二种方法更有效率,用户体验更好。& u- w  M2 K. z
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:092 B2 }( Q. h7 V; o) f
    是简单些,但是会危险些
    # p7 i2 A/ O  t: X3 T1 t2 [6 h: H& l  `' x/ f  `
    简单:

    9 u7 k2 Z6 z! r7 `  [5 Q- V' Y我看了下一共有5个地址0 F. `" F, j: v+ e, a) E
    1.物理(mac)地址; l- v7 N0 I8 ^. ]" \0 |- V$ L; r
    2.ipv4地址
    3 I+ e6 R& I. l& g3.ipv6地址
    / S  q. }3 H9 u. O. D4 `- Y4.默认网关
    , Q; m, F" z8 X+ F/ B5.dns服务器
    * P7 W& Y; t* y我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16
    : W8 \) z0 j+ F2 G6 P1 ~" G$ l3 ^我看了下一共有5个地址0 n; i% `) _8 w
    1.物理(mac)地址/ Y/ Y; _4 W& j$ F- d% o
    2.ipv4地址
      M% k; B3 y% i; Z& A
    2.ipv4地址
    $ m) O6 k1 h2 g! S/ T$ ]3 k6 r
    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, 2025-5-12 03:14 , Processed in 0.029852 second(s), 30 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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