掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5633|回复: 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
    ) N: k/ C% m4 S! i/ S3 d% F楼主呀,ubuntu的详细安装教程能不能发个呀?
    ( }1 R4 S/ d2 m. P5 v: I

    ' k* s: x3 Z9 |; h8 d5 s+ w3 H' bubuntu 更简单,方法更多:
    " c5 Q, W# X4 m6 i- X
    7 t: l( w9 D) K: N9 d: k1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget9 u& s: T+ ?" h0 F# O/ D
    2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip ; q; Z# \! `5 P" _6 R
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    7 j0 J4 m+ I5 x* O$ _% W" f3 g4 `) ]
    4. 安装依赖包,pip3 install -r requirements.txt
    ) M% B. H4 P+ Y7 X5 J4 _5.建立 content 目录, mkdir content
    * e: Y3 M" ?" ?* \: ?( ]( E7 z0 _+ v+ h- L
    6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    ) A; {* y1 t3 w8 a. T0 i# \
    9 C- U) W6 i& C! o1 v" T! D; b* ?0 O7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响/ n6 Y- Z! n1 I6 a4 l
    8 C2 x8 k' C4 ]& M% h
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...
    , o; L  @; `1 A8 |/ [3 K9. 运行 flask run
    & Q( W( f3 V( d10. 浏览器访问 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 编辑 3 q, ^' O# H% Z, t# q- p7 Z5 w6 x8 o: [0 d
    Budha 发表于 2019-3-23 17:242 R9 Q* v' I5 ~* D" t4 s
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    % t- i' c2 x) X) r9 g8 `1 k
    可以办到,但主要功能不是我提供的' o( {7 `0 S, r

    # q- c; M( G5 a! s( o' |1. 首先,运行我的程序,家里内网的机器可以正常访问
    * I; z: r: |" L) S- L2 L2. 在家里 AP 路由上做地址转换
    ( _; x/ I; {' |) \0 J7 T" L0 |8 H    例如,映射外部端口 5000,到家里内网  <pc_ip>:5000
    9 d8 j' w# h$ t  [' O8 F& B9 @7 ]) G: ?+ C! S$ \+ P' c+ }0 Z* m
    注意:
    + V# R5 F/ k+ Z! b   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以* ]" H4 K* U$ Y6 h2 E- O* }+ m
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决
    / @! e8 x7 g4 B9 Z- A# ^   3. 映射的外网端口不能是 80,或 443 ,ISP 禁止( m% ~0 I% C7 I

    ( g9 N( X7 E2 C" i+ k总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。
    3 `5 w1 x/ ^2 _: V5 z
    , M$ w2 A6 Z/ }+ J
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    0 p/ ?. W5 h+ l4 AAttributeError: module ‘mdict’ has no attribute 'init_app'
    7 r+ c* y1 K( _+ h3 }: U$ t$ U" M8 H9 D不能正常访问网页
  • 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 X1 v2 Z8 i8 q$ U$ c
    dengao 发表于 2019-3-22 16:57- T/ {1 ~1 F4 \% B  G
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 % W5 a% \1 g* D& K
    AttributeError: module ‘mdict ...
    9 e2 N8 b3 ]; f
    运行:flask run9 o& M3 E# E% R4 S# _9 l1 w
    试试
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-22 21:26:58 | 显示全部楼层
    8 L/ W+ e0 [4 M2 X$ Y* x
    这个版本有点问题,我已经更新,请重新下载,链接不变# d4 b/ n9 O( v6 Q% B, J
    , a3 p4 e% i, Y

    : F  I' [3 }, r- I
    ; }& B  d( f! i. r. Y1 f4 R
  • 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 编辑 . N7 I1 U/ S2 j! h
    Budha 发表于 2019-3-23 09:456 f) a2 y: A6 S, Q& v/ h- W
    楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    " |; B0 L( w# w3 D" b
    http://127.0.0.1:5000 只能用本机访问! z+ h# E8 u0 r( C) ~8 H$ w- ~9 u

    5 A. X6 d! ?+ u+ ^2 V如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/
    ( B' B% Z5 N8 g2 O7 w/ ^7 W' w1 m改为, _' S1 V* ?* M0 _
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

    7 f, e: Z7 U0 _% A6 F/ |* s6 v
  • 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 编辑 : l; v# ~+ W, t4 V. o! u
    Budha 发表于 2019-3-23 14:44
    $ p% }1 Q2 M9 }% b我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...

    8 n$ I2 b- T* W3 z9 F! v如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0
    : j( N- f' K- b) S6 h( C
    - B1 K6 `+ J2 U- d* X* ]如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径
    ) B& h) u8 i& ~, S5 U( n# M, n$ K' Q
    查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/3 E1 ^' S1 Q2 E- d7 c* O  l/ j0 E  U
    请重新下载 mdict 源码文件,刚修复一个界面问题。0 r+ q( d% P8 M$ B+ `
  • 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 编辑
    + `: W0 s3 \. M- t% V
    Budha 发表于 2019-3-23 17:24
    * Y6 h$ \; ]7 o; K3 a- ]( n我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    # h! B- \8 I& n. v
    这个和程序没关系,关键在于你能不能远程访问家里的电脑
    ! E0 ~! S; L' a, U) t- P; l/ Z7 k) h, p& C7 l  B

      k4 E, t8 m8 v+ \在Ubuntu上简单试用了一下,很不错。
    + }1 F3 k! _* c. r" L
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    $ p' R: g0 R* g- Q
    ' x" r1 [! N7 _7 b词典code一定要规范,是不是做到xhtml标准的那种程度?
    / A5 \0 O7 q* `2 K5 s% t3 J还有就是,可不可以做成直接支持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. m# g0 z4 b4 v2 q: K1 P4 S& `
    词典code一定要规范,是不是做到xhtml标准的那种程度?
      n! T& M( I8 U$ U0 b; }6 m0 e* c还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...
    " @, X8 Z  h# O' P" m+ {8 [0 b3 a
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    + B/ b: _, ^% U' p/ e! T5 x0 K( S确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。
    8 J# f5 I1 ?% x, K  J$ k. u( S6 T# p* g
    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% T" \  A$ s: Y& j3 Z! u( j
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    . Y9 L  E6 Q; t确切的说,是的。因为词典code是 HTML 代码,各大 ...

    0 u# q4 m1 [4 i& Lmdx源码的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  P' _1 L. b- [" m' x5 F$ `6 d* J
    可以办到,但主要功能不是我提供的
    ' @; O" D: a" s/ A7 ~4 t) g
    5 i8 u0 w4 c; \$ ]. I' @# z1. 首先,运行我的程序,家里内网的机器可以正常访问
    + `& h+ S/ G: ~/ P
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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
    6 u& R; U* `' T! `6 @" ?! P谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    6 u: o. Q- c7 W2 p

    . |7 k  Y" O. Y是简单些,但是会危险些
    : D* U/ @% w- {. w7 P( ^. A5 V, I3 k  c7 ~% g3 T$ h
    简单:& @9 m0 B0 j! l5 Z
    直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射
    ' ^" \0 H# \# }% T- w; j
    , J  d5 c4 z, A! _1 S3 G危险:; p, b  K9 C" k+ n* j5 z# s
    PC 直连到 Internet 上,没有经过防火墙隔离(Windows自带的不算)容易招到网络攻击,windows 补丁不能及时更新,容易被人攻入
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:18:08 | 显示全部楼层
    流星冲击 发表于 2019-3-24 05:482 d! U. v; a0 o3 @5 ^4 c0 b
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    ; `: j2 L5 I( h; D6 }. a
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。
      K9 i& ]' \  n# N7 W+ {8 {( ^$ s, L5 |
    这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    # S6 D7 }; t* o4 o静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    $ B6 O' M" q4 n7 @9 o+ P7 E/ u& j5 f/ @- d
    显然第二种方法更有效率,用户体验更好。6 Q8 f+ @$ x' k- c
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09
    " w, U8 B' t) Y是简单些,但是会危险些
    $ G( e6 {9 n$ y2 p8 F  \3 r( i. e
    ' T) o7 C7 i% K" U+ ^简单:

    / B. t$ \( Y/ {! _+ E! h我看了下一共有5个地址% x: q. w% B% X; V
    1.物理(mac)地址
    ' z+ r( Y& J3 j2.ipv4地址
      D/ b: S8 ]) ?" C3.ipv6地址
    % D2 b; P$ I9 x/ |6 o4.默认网关
    . h! t8 W& v: \5.dns服务器
    4 R- z  S4 X/ }  I) s8 w/ G我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:167 a2 x, W% u1 r- y
    我看了下一共有5个地址  M3 F  F; u! Y) V; g* ^" Q4 v6 I
    1.物理(mac)地址( d; u7 Z2 M! @1 z9 k$ K
    2.ipv4地址

    7 ~9 H7 R& ]7 \0 |  x2.ipv4地址% }' c/ S+ K. g9 Y+ C! N: ]
    3 c2 k/ m# k1 R3 G: R/ o
    ipv4:5000
  • TA的每日心情
    开心
    2021-4-11 18:44
  • 签到天数: 88 天

    [LV.6]常住居民II

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

    [LV.9]以坛为家II

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

    本版积分规则

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

    GMT+8, 2024-4-20 09:35 , Processed in 0.146645 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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