掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5534|回复: 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
    ! g/ k  a; c  h7 I7 Q  D/ n8 `2 S! b楼主呀,ubuntu的详细安装教程能不能发个呀?
    . w; \9 _) l; }/ L: I0 J1 U. l9 n

    2 M4 }8 T- z+ b0 z, o" gubuntu 更简单,方法更多:
    % N8 T2 s3 o# u3 l  L/ e* B
    2 L+ n( `9 M* d  h1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget5 k- b" ~8 d7 J0 a: ^
    2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip " ~( U1 R- d9 i( t  \! D2 d. K
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    1 e- ^: p* ~# Z, H1 A0 j+ h- q3 A. v, ~2 i9 }* U3 B+ m# y3 e
    4. 安装依赖包,pip3 install -r requirements.txt2 S' }8 o5 L& c2 f  q% N! N( @
    5.建立 content 目录, mkdir content
    ' i0 y4 R' C3 h0 X' `. n9 r: Y3 Z' Y
    6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    ( ~5 k2 f! o0 p1 r9 V# _) [$ J& C) x$ d$ g
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响8 v2 y+ J& _3 S5 E# |$ ^

    # F6 I; G6 h. Y$ M/ t" J1 C8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...
    9 ^, `. G1 `" [9 M9. 运行 flask run! [5 g$ G: ]5 P7 t# P7 l" M
    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 编辑 + \8 {# y/ G2 ~+ O8 F/ j
    Budha 发表于 2019-3-23 17:24
    + v: E9 A1 j5 z6 y& R' I3 o% V我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    : N6 _4 n7 N4 J$ W3 T, T
    可以办到,但主要功能不是我提供的
    8 b/ W. e% d" a6 H2 A
    , R! b8 H5 z% h0 Y; `6 U8 J1. 首先,运行我的程序,家里内网的机器可以正常访问
    + k  E5 P3 G" i7 o$ I1 s. `2. 在家里 AP 路由上做地址转换: E, D5 _4 |  P- w
        例如,映射外部端口 5000,到家里内网  <pc_ip>:5000
    . I# n9 \+ c0 R( _& w6 [9 A/ R3 g. B
    & C7 d$ r) h& u注意:4 F$ m& I6 ?* m) ?4 T+ q
       1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以
    0 t% _; d+ V. M9 H" R" p1 u6 t   2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决& K$ b- r  a) c
       3. 映射的外网端口不能是 80,或 443 ,ISP 禁止
    4 w$ T7 X, ^# v/ v! b0 j
    4 X  T# K* V( c$ d总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。
    " B% Q2 I7 I  {; P; o+ g, i* l( I9 w0 }* L# f
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    : C- _* E9 n' Z- B7 e2 O" vAttributeError: module ‘mdict’ has no attribute 'init_app'6 |; R- o# E' W
    不能正常访问网页
  • 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 编辑 * g) K& B& D% C/ g+ h
    dengao 发表于 2019-3-22 16:57
    0 \- N( t( R0 K' W我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    : U+ c  b9 B% ?4 [" W% IAttributeError: module ‘mdict ...

    ' [5 v. G1 Q. n9 N% A; R运行:flask run1 R; M9 l7 N) e+ G$ c
    试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    ' n/ h' C$ m- I: V这个版本有点问题,我已经更新,请重新下载,链接不变
    # B7 G# w! g3 ^8 ]4 ^( E
    / n# T  `; c9 w8 x; I( ?4 t( N! i6 Z4 S/ h0 P! w

    1 Y& G5 V" H2 v" R! F
  • 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 Q0 f  ~9 t" a& q' o1 K& H
    Budha 发表于 2019-3-23 09:45
    * {1 J' x  ]5 B, R: d3 U楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...

    7 @& L8 {) K/ l$ O# Uhttp://127.0.0.1:5000 只能用本机访问( h$ \# M% N7 X6 K
    1 \9 j: ^0 Y" ^! J5 s
    如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/( |7 v$ _( b+ _
    改为. x9 P3 I6 }5 c
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

      h6 ^; u) ^7 ?  z
  • 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 编辑 ( N! `) _8 W3 P' D1 X2 M. g
    Budha 发表于 2019-3-23 14:441 o4 l: g  {* c9 @9 M
    我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...

    # h4 j. U$ m, q  ?如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0" I3 {3 \) Y: R5 W
    3 \) w9 r. _7 F2 T+ d; O
    如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径- c* G( j# j" _  e6 z! H" B5 s: P

    : F3 p! I4 c3 D, h查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/
    & W1 {( U; l1 d" z/ w" k请重新下载 mdict 源码文件,刚修复一个界面问题。
    $ u. K; ^. u5 ~. \1 x/ z2 S3 w
  • 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 编辑
    % F( \0 t% G& Y; w
    Budha 发表于 2019-3-23 17:24+ ~' Z1 b, ~5 Q  C. Q
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    + P7 I, d. |9 j6 B. @9 c; z这个和程序没关系,关键在于你能不能远程访问家里的电脑9 h9 ^3 [' U9 c

    1 H: u; F8 `( l3 B) c; C( b! A
    在Ubuntu上简单试用了一下,很不错。" V% q6 f) u* f
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    / K4 h6 G  A( R2 G  A3 X
    + R8 Y' T* H- @. v" z' _词典code一定要规范,是不是做到xhtml标准的那种程度?
    ! @: b' O8 w+ F/ S5 M还有就是,可不可以做成直接支持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
    1 ~' j% ^; K% U: V4 J词典code一定要规范,是不是做到xhtml标准的那种程度?% `$ f1 H; Q$ d; F8 j4 g
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

    ) N/ b8 @! \) O) V+ U8 Q& [词典code一定要规范,是不是做到xhtml标准的那种程度?5 p' I5 e( j) X( }- N
    确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。( l+ i# {0 e8 s8 M& W5 i

    7 n5 p, w# J( v5 d- |( o9 y9 Rtxt源码没做过,不清楚,但理论上可以,但可能会牺牲通用性。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
    4 t9 O  C% c/ `5 W- Z) l词典code一定要规范,是不是做到xhtml标准的那种程度?
    6 S7 m+ |! r" Y% P& Y6 T( X( P确切的说,是的。因为词典code是 HTML 代码,各大 ...
    ' j: `" y0 Z& o# b' l" m) Z
    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
    & f4 B, ?2 e) r4 A0 l2 s0 [; [( l5 W可以办到,但主要功能不是我提供的
    $ W8 a6 ^* |1 T! U
    ) f$ Y' Z7 `  ~5 S1. 首先,运行我的程序,家里内网的机器可以正常访问

    3 A& L6 {- C0 p- A$ a7 q谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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
    ! g$ n/ F  W  k: p3 m) m. J谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...

    % |" ~6 ~7 Q# ?6 Z- p. e) Q
    & e% {9 v% _: B' W: e是简单些,但是会危险些
    0 j; [5 Z+ t; K( {9 L& H# Q( O/ k9 `: d* g0 Y' Z7 R) N
    简单:% [+ U( ?! m- b; r, C* X7 d& b
    直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射/ u. j& A& v+ g8 |1 K
    / ]. o$ s: C% c# A! @
    危险:2 G$ f9 k( _7 w* Y0 u
    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
    5 b( x; p' p' V: R# cmdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...

    " ~% {* [9 h$ M; G是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。
    ) ?. A2 y* l6 b+ K; H5 P
    . A' f- r7 u% U( s' a' B这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
      f8 N( j  C: ^! s% f& M" W& C静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递1 v# G) O# b6 W$ M1 S8 x

    7 v! }5 q9 E: n- V1 C+ S# W- e" d显然第二种方法更有效率,用户体验更好。
    ! U6 K# W6 x* ~0 l$ W+ v1 s$ C
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09
    + T. w8 r2 J9 y是简单些,但是会危险些- i* D# V2 m/ m: a( [) O$ V4 ]

    & p; O7 e; P. b简单:

    # l+ a5 w8 H# T8 J我看了下一共有5个地址  F5 D6 v& y% C$ Z" f
    1.物理(mac)地址3 F) q0 @" u5 w  u3 B4 J
    2.ipv4地址
    ) Q2 n% e- Y, `- k9 _3.ipv6地址$ Q% q( h& f3 l: E( M. \2 t
    4.默认网关
    ( H% t% G: C, q: E5.dns服务器3 q) m# D; w* Q) b+ i" h& B
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16& C. _4 Q5 `9 b# N' U1 {
    我看了下一共有5个地址4 ^$ X/ `- g0 V$ G" S5 n+ F; H
    1.物理(mac)地址
    0 l& V7 B: o% C4 }0 v, q0 s$ j6 S5 }2.ipv4地址

    3 s/ \6 _- \* w# |' O" s2.ipv4地址$ f" F( H  S8 x
    , h# D5 J! c# Q5 ~* n4 o
    ipv4:5000
  • TA的每日心情
    开心
    2021-4-11 18:44
  • 签到天数: 88 天

    [LV.6]常住居民II

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

    [LV.9]以坛为家II

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

    本版积分规则

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

    GMT+8, 2024-3-29 21:47 , Processed in 0.086345 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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