掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5680|回复: 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+ A6 H; [$ G( y! H6 J
    楼主呀,ubuntu的详细安装教程能不能发个呀?
    6 X9 j, w! p& x+ W
    ) g1 l+ |: u9 v/ j# S. n' ?: U" C
    ubuntu 更简单,方法更多:
    % u$ ~; l" i0 f0 ?% N* j& W
    ! E2 w& J/ d5 d5 M0 w; f- k. p1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
    6 e8 D* {3 ^2 q* j9 M. I2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip
    1 X+ b- `$ }6 X* k; T: R3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以0 U& {' ]. J( e, t
    2 A" q! k8 {" p& x9 \" {, {, t& g
    4. 安装依赖包,pip3 install -r requirements.txt
    2 |1 j* K0 z8 \3 A7 u3 N5.建立 content 目录, mkdir content
    & q) E3 }  z6 V! A0 C( P/ p
    1 o0 T, y2 W' h6 A6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv' e% w* h, }& m) N9 v3 i
      ^$ s. R7 {/ E6 q
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响7 [. u# R& f( }
    * E9 B; `/ k# f' u
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...3 I( U" @( [" O2 x7 V/ z
    9. 运行 flask run8 L, Q# b) O$ a
    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 编辑
    + o- d4 `  s9 C+ [: `/ W
    Budha 发表于 2019-3-23 17:244 Z( v; u& s; z$ }
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    / ^2 R+ q) \9 v( }0 ]2 f
    可以办到,但主要功能不是我提供的
    9 n1 h% |0 K  P* _5 j) n/ Z+ d* Y" K3 T# L5 S7 G
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    + e) l5 t4 @+ \; T! M0 K3 C2. 在家里 AP 路由上做地址转换. J4 l/ r! Y* H( f' e. z; ^9 A
        例如,映射外部端口 5000,到家里内网  <pc_ip>:50002 }$ z% Q/ q' u' ^; g
    8 X" H, w5 J( J0 }& h' z. ^# ~
    注意:
    3 C5 ]5 f0 l4 c- q) }$ i   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以* x( X$ _( x# L. o& g
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决! N# N5 F4 T0 T
       3. 映射的外网端口不能是 80,或 443 ,ISP 禁止
      f# h- e& b7 g$ g. x; N5 c4 n9 t4 z1 ]8 G
    总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。
    3 x# W( P# F# ~2 l8 _
    4 a. n' r0 V/ O/ Z7 H$ V
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    - b' L( D- r7 w$ ~) CAttributeError: module ‘mdict’ has no attribute 'init_app'+ t7 Z& \" O2 E% @3 h. P# t% 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 编辑 ' g- Z, r9 K3 x; Q3 a" o, q
    dengao 发表于 2019-3-22 16:57& }  t$ y4 Z7 @
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 ) D  h3 F5 o/ C& ~/ \* q
    AttributeError: module ‘mdict ...
    # v1 n5 p* }0 D% ^+ r0 p' P
    运行:flask run' P6 m3 }- ?. }1 q
    试试
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-22 21:26:58 | 显示全部楼层
    , K7 ~+ q5 x3 }' d. w/ m0 c. I" b
    这个版本有点问题,我已经更新,请重新下载,链接不变4 F/ U0 U8 L2 t5 p. _& y  J
    1 p2 V' z8 D; G; n  V% R

    5 T# g3 ^% O8 @  q0 |
    / V$ N1 p& K: T5 W
  • 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 编辑
    ; k/ \  [8 w5 z  y/ b
    Budha 发表于 2019-3-23 09:45
    $ E" o  {+ I: B楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    - w3 ^8 J9 h& X0 J- f: M
    http://127.0.0.1:5000 只能用本机访问
    ) v( ~1 w* [0 Y: p
    2 ~7 R8 P! S# O: }% \0 P3 e; q如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/7 G0 J: g! c# n7 m8 V
    改为- g- O  n) G, n' ^# H( N
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码
    3 k* O/ U- i- k$ B
  • 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 编辑
    , ^9 ]8 ^- @- \0 v& l+ g
    Budha 发表于 2019-3-23 14:443 |% K, V" g3 A* B
    我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...
    , M* f: E, S: {/ p
    如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0
    ) u/ O) G6 h* C4 K5 d, ?9 g
    1 F& J) d8 ?+ y5 y如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径# _6 o5 x/ y6 N) B, \" t
    6 s2 {( h. v+ S  X, o" _$ t# X
    查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/" z* o# e% V  {1 x- L. o1 v2 U
    请重新下载 mdict 源码文件,刚修复一个界面问题。1 _8 r5 C' |* F
  • 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 编辑
    ( ?/ z! z" t+ @/ ?- D+ k) G% r
    Budha 发表于 2019-3-23 17:24! o+ O- f" E! E+ n
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    : Q4 Y+ \' [! a& u* _/ n1 l这个和程序没关系,关键在于你能不能远程访问家里的电脑
    0 r( L# ~* q8 o! A6 S% E
    ) T- R5 {( r7 b: Z' A( i2 b# F/ \. O& d5 u; f' R8 F
    在Ubuntu上简单试用了一下,很不错。" g& G& m7 [4 `+ H: w3 K
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    . b5 [, v" l- T% O% m" i% {  L, }7 m5 n$ p8 h0 a5 E- Z+ ]3 {
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    : \$ a& `. c. ]0 g% l还有就是,可不可以做成直接支持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:328 N: l, ~8 [* K9 }# l9 r- Y. ~3 k
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    & [- I; b7 b7 y& z) l3 A还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...
    ( X+ q8 ?' `$ t" y+ ?+ k
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    : W6 A* \( [1 `+ r" W确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。3 N2 D8 i4 `8 X- e1 W

    # t0 ~( ]% H4 Y/ Q* p+ M& 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:298 C1 M* E2 t3 a0 D( r: c
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    8 F8 u' |: G% w% c, \, u6 H, p确切的说,是的。因为词典code是 HTML 代码,各大 ...

    4 n' x' _% U4 S, C, D. Q: n5 ~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:522 j0 v6 h0 e  D  U- C4 w
    可以办到,但主要功能不是我提供的
    1 Q/ V2 j- t0 O- G/ T9 D5 G4 u; Z) U6 q. i
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    2 F; C0 {' _8 ?! j: \! ~# U* K
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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 t$ K4 X, l! }谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    ' ]# ]* p& j- p; L) l

    1 T  h: [, Y; j7 _! W是简单些,但是会危险些
    - T3 F9 {2 w( Z: b) t. b9 j1 g( K+ ?% e1 r8 U0 t/ _
    简单:( b6 Y+ [+ J5 e+ i, `+ ]0 j
    直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射( g4 h! ?8 Q% ^9 r. d6 p+ K. G1 \) u

    $ u1 @: t5 K; O$ O危险:
    * c" y( P. R4 t9 JPC 直连到 Internet 上,没有经过防火墙隔离(Windows自带的不算)容易招到网络攻击,windows 补丁不能及时更新,容易被人攻入
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:18:08 | 显示全部楼层
    流星冲击 发表于 2019-3-24 05:48
    0 ]8 d$ c" G4 x" R; Imdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...

    6 x, P$ T, V& b5 v& t6 D是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。# N6 I; v, q1 T. h

    / g4 {5 V0 {* G  g; _+ }这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    ! O1 c+ y, N! i, V静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递2 E7 O. s/ h8 A& y5 d, _/ X

    2 y, B0 G! v6 I显然第二种方法更有效率,用户体验更好。
    ! c, a% p% K; C5 o$ Z1 o
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09
    * P5 U8 G/ s* P1 H, p' O7 v是简单些,但是会危险些4 s* K& e4 u2 j; ~* S. A2 [
    ) w) Q9 d8 B$ E" d; ]
    简单:
    ' b- f- X8 }. n: }
    我看了下一共有5个地址
    : {+ \  ?0 R# \$ C1.物理(mac)地址, i( D0 M. j% O% E" i
    2.ipv4地址& d7 H4 B1 @' Z7 @* g0 L; ^
    3.ipv6地址# V& O' G7 L  C  ?$ S% X* O- p
    4.默认网关0 {/ w) a0 ]2 l' Q8 y  l
    5.dns服务器
    1 r1 T; K5 c8 l7 _4 e+ t% h) F我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16/ S" t, n- e- R+ d. L
    我看了下一共有5个地址  R3 w3 S6 |; \1 n9 t
    1.物理(mac)地址
    , r: S: Z: L" M0 {! i( Y' W6 K) f. D2.ipv4地址

    & S; ?0 X- c2 ]1 f/ p& i2.ipv4地址( E9 L: Q$ h) D$ t8 f+ a0 i, `% o

    3 ~" _  m9 G2 m2 Tipv4: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 17:38 , Processed in 0.088624 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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