掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5529|回复: 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; T$ J) D8 n% A
    楼主呀,ubuntu的详细安装教程能不能发个呀?

    , c0 b, o; e. W' ^4 C7 z+ V! D6 D5 u8 d: O4 U( Z7 @( G0 p1 H. [* N0 L
    ubuntu 更简单,方法更多:
    $ s3 E* m6 y" l7 p2 R* ^9 F: J
    , L: d' |* o1 h  h1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget' P# r* H9 Q) j
    2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip 7 }$ [1 _% N5 |
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    / ~" ]9 o% U  w
    / h/ Y/ W6 j3 o* T$ M6 @4. 安装依赖包,pip3 install -r requirements.txt
    ; N) O5 l' N( z5.建立 content 目录, mkdir content+ b% A7 g! K5 u5 V6 T5 m! X
    1 D6 l3 o' G% Q7 M! w4 D3 D3 G$ m
    6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv# e- }: @# J& k, Q

    % Y* |* B: T8 k5 m. n0 O7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响
    + Q( V4 T1 D1 w# a
    6 {0 k/ \+ l3 ~% X8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...+ N+ j" i% V0 O$ t1 ^
    9. 运行 flask run6 t+ K- q! A8 c* W! [
    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 编辑 7 ~0 b  ]% ~7 p6 ^! L, p( g. d" ]
    Budha 发表于 2019-3-23 17:24' Q9 S/ }4 M& f! h2 x
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    5 e- P3 Z+ Q6 t& n
    可以办到,但主要功能不是我提供的) u6 J6 V' X+ E! b1 k
    # b0 n, D; Z# I
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    7 Y) Z6 |$ M2 |. b5 ^2. 在家里 AP 路由上做地址转换. {2 g$ _- }3 ^3 Q  e, ~
        例如,映射外部端口 5000,到家里内网  <pc_ip>:50002 |$ }8 z  C2 K% H' [  g5 u

    - G2 j) V' j; O  z7 s注意:
    ; s! ?, D3 z. J   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以% c2 F. H2 U/ a9 N0 ~; f' o9 ]+ |
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决& J* m; r+ R$ D( Z# J- |% P+ Y
       3. 映射的外网端口不能是 80,或 443 ,ISP 禁止
    ( y+ F- [; T* l0 o8 B, n) Q% \
    4 l3 ?  d. S; y- j6 I总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。, }5 r  G3 Y7 ~# l7 W3 o0 ]

    & q7 j. o) X* Z
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    " s, T+ A0 b' e# p- B: HAttributeError: module ‘mdict’ has no attribute 'init_app'# h# ^0 h7 ^# J5 @0 O3 p
    不能正常访问网页
  • 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 编辑 9 o1 c$ j: u: s, K7 F) C( j  @; o
    dengao 发表于 2019-3-22 16:57! A% m8 X! Q  ~. L" |
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 ; h: p$ G+ x) a( R! g0 F- d
    AttributeError: module ‘mdict ...

    9 a8 ?9 a% S* J5 }2 m1 B7 _运行:flask run
    % i( O7 {( q9 |& K# w试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    * e! j7 i+ k9 ?/ j5 K* ~这个版本有点问题,我已经更新,请重新下载,链接不变
      f3 F) L1 ~0 c/ Z* q$ l! b; H9 c5 k4 c' A1 c8 t2 m
    ( h3 y  E+ u' u4 F1 }/ [

    # a! B2 q8 A/ k. M) a9 s
  • 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 编辑
    4 E6 f3 z$ J$ {1 T& W
    Budha 发表于 2019-3-23 09:45
    4 \$ G; B$ T% g: y  H楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    - l/ q3 M0 i3 B. n5 C! G( _/ D
    http://127.0.0.1:5000 只能用本机访问0 t  n& ?9 A! j8 _

    : e7 [: W/ g4 D# T, u$ }8 b) j; H如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/; _: r) L) _5 s& D
    改为
    , v, j( q. C2 ^! Q4 E
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码
    + s' j" |1 R2 ?. ]8 m- ~1 ], i
  • 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 编辑   Q  {% R2 [, Z* P  c: y
    Budha 发表于 2019-3-23 14:44
    $ u  R% {* t1 O  j我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...
    5 c* b; ~6 M3 c1 [! D2 s/ I8 |
    如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0& Y! I- M9 U6 _; b8 Y

    ! N, b4 j9 D/ F如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径5 l# D7 I/ j  L% ?" S" w" E
    & T$ z$ k) n: S5 w
    查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/+ T/ s' o7 e' I% P8 Z+ ?" \& [8 ?9 y7 `
    请重新下载 mdict 源码文件,刚修复一个界面问题。
    ' c3 }  `- \8 J5 k2 @
  • 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 编辑 6 Y# }" {" l4 D2 y
    Budha 发表于 2019-3-23 17:24$ R7 t- ?6 U' s6 E7 I
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    " U, x* i- f0 R9 F% C+ r6 S
    这个和程序没关系,关键在于你能不能远程访问家里的电脑2 F+ L! F- v8 R
    * u8 ?* ]( t, f: r: [

    0 F6 ?9 \1 ?9 x- h8 u& @& m在Ubuntu上简单试用了一下,很不错。7 N+ {7 P- v* K% F6 ~' @
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    8 f; T/ U* T7 p& ]* c, ?4 J, b3 V- Y9 K, G
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    1 O+ F1 \$ V  ^# Q8 u% r  T还有就是,可不可以做成直接支持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: I2 w$ U; V2 [+ L' [
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    7 D6 K5 L. l  o, @还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

    7 r0 u8 K8 E4 ~. X+ Y: Q& _: v词典code一定要规范,是不是做到xhtml标准的那种程度?8 T) i' c0 }) U0 V0 Z
    确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。; f! H& J% {: G6 N' [6 D! d

    ; H3 p% c5 ], E; r4 v& stxt源码没做过,不清楚,但理论上可以,但可能会牺牲通用性。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' k4 V/ j$ r词典code一定要规范,是不是做到xhtml标准的那种程度?
    4 |, X6 k- y9 O2 A, ]9 E' t确切的说,是的。因为词典code是 HTML 代码,各大 ...

    5 i* P7 j% }4 G& b; e' S# nmdx源码的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) ~! b- K* w& H- [/ A
    可以办到,但主要功能不是我提供的1 C& \+ @  U+ \0 V" X
    5 C# v# X1 c% m4 k  ]* T
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    7 r5 U! V  k- o$ x
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情况,这样设置的话是不是要简单点?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:09:59 | 显示全部楼层
    Budha 发表于 2019-3-24 07:372 [2 D5 G1 f1 R9 S/ d  ?1 ^
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...

    7 }- W9 T& y& u7 L/ p2 U: o! U2 }! t
    是简单些,但是会危险些: H# d* K  }, |0 h1 t
    * b/ e( r! U5 U8 G' L9 P" A
    简单:
    & N4 h& k5 ^4 E4 k) b9 @直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射
    5 y0 p5 p4 x; |  l$ r; I
    2 ~9 j) A  T9 w# Z危险:
    0 a2 G/ ^2 x! ?# @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' o1 l% R; Y7 C% \' y3 O  N
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    ' D; b( w5 Q  J; O8 `6 j
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。
    & X% q1 ~% {, v7 k+ I. U0 @( T4 [' z" L4 h( m" a- T. w4 o! D
    这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    . b, Y7 r5 B' i& b7 w" ]* q静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递3 R6 n7 @; @8 ]5 ]% b  d0 {! ^6 D* y

    ) ^4 p/ W* B! m显然第二种方法更有效率,用户体验更好。/ Z8 T8 W6 h' ^1 p: m- Z
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09
    4 V  \; S8 d0 Q2 Q* C6 ~/ b. e是简单些,但是会危险些* m3 K" b; X7 T  m+ g

    # }& g8 i! M, M" G1 M( V简单:

    : }+ e% b' h: o2 p# P- c! M+ j. }+ I0 o# Y我看了下一共有5个地址
    8 N, W6 [) w  z& W. H5 X& v1.物理(mac)地址
    % }% U; D9 I' f( Z6 {& |2.ipv4地址7 {$ R. Y+ P1 X
    3.ipv6地址' n9 f; q% |  @; C) {
    4.默认网关. c. \0 W! L" n8 A* E
    5.dns服务器0 g% L1 C' l6 v( }' u
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16% |8 Q+ t5 E" [
    我看了下一共有5个地址) D8 ]% U* s) S% r. b0 G0 Z
    1.物理(mac)地址' F! U) ]& d) J
    2.ipv4地址

    ' O& y5 a( b# j2 Z! {9 W2.ipv4地址$ b' h9 M. h4 d( e# I8 u
    2 ^$ d, X8 v2 F
    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-28 18:19 , Processed in 0.094115 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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