掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5672|回复: 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/ s9 z6 u3 N  ^6 x
    楼主呀,ubuntu的详细安装教程能不能发个呀?

    5 x2 K; g' L; Y  u7 p, A# j  K
    7 q. x: ]* `' e, yubuntu 更简单,方法更多:
    3 A; ]5 L" t% L6 S
    * P4 ]+ J# _1 \* A/ F) Z- T0 A( E* {1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
    + N5 H$ s; W. m2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip
    2 o4 b* [+ A; |+ [: t* ^3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以2 Z6 |0 D: x' C% T
    # n0 c& o4 W" X
    4. 安装依赖包,pip3 install -r requirements.txt
    ! H7 ?. z) P9 M! S" r& o  e+ m" c5.建立 content 目录, mkdir content2 @8 i* s3 ?% t+ r; Y5 t; p

    " x% ^3 g* b; o' g8 F, x: }* m% Y6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    - ?, R* b% w7 P8 X) n. E7 D2 h9 U) z) T& {
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响
    ) ?( s4 e* J' h+ K0 Q2 O. O) a/ T+ D# ?3 P2 }) o  L4 W# y$ H
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...
    " M+ [" [+ D8 A( x8 y9. 运行 flask run( S6 R3 [) a* O% Y
    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 编辑
    0 l5 k% J* W3 N) S
    Budha 发表于 2019-3-23 17:24; e1 {8 K8 c. Y& d( l, [3 k1 \
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    % C: z: Z1 r5 O) s+ u可以办到,但主要功能不是我提供的
    1 Q# [1 e1 h7 H" C& B
    1 g, Q! k5 k! ]/ B( l9 p' z, h7 g  x1. 首先,运行我的程序,家里内网的机器可以正常访问2 V, j* i3 n  [% Z
    2. 在家里 AP 路由上做地址转换; a- q7 E4 H. V; T! s
        例如,映射外部端口 5000,到家里内网  <pc_ip>:5000
    + D1 ^5 w/ ^% K) ?; r
    ( a, d3 s' |% _- u注意:
    % t& W2 Z7 C" R% U   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以& j& o6 w2 q$ |% a1 w* I# K
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决" Z5 u# i6 A0 i: t; l
       3. 映射的外网端口不能是 80,或 443 ,ISP 禁止* y( x, B) x+ E5 U, P+ J; U4 J0 G
    " o% F. W4 D9 {0 {
    总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。
    ; C7 i- `. j  }1 R1 N9 ?3 ]( n: o+ D/ K! H* D$ n+ K! c
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 9 G! S0 }& x" o! K4 f
    AttributeError: module ‘mdict’ has no attribute 'init_app'8 `6 a0 j; U" |2 n# X6 Q
    不能正常访问网页
  • 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 编辑
    . T' u- a5 t* ^# C0 u# m
    dengao 发表于 2019-3-22 16:57
    + U! ?9 F7 M, B/ P& y; p我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示   C3 o0 I  l7 H7 Z: ]
    AttributeError: module ‘mdict ...

    & A. k) a) I( V7 u运行:flask run
    1 f! f7 l. G0 _! C! z' V9 e  f试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    ) b0 }7 C7 k2 t4 C/ D这个版本有点问题,我已经更新,请重新下载,链接不变. P! ~! t9 o& x+ Y. D

    " Z' O9 A/ S% [0 O" @- ~) `7 h0 @' h4 ~- @9 G; x; R# r  C
    4 Z6 o: a" B" {3 H$ x5 f9 S, V0 \
  • 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 编辑 9 T! F$ a/ j! r& z8 f
    Budha 发表于 2019-3-23 09:45
    . F/ X$ ]8 |: T4 P9 i. |楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    + j( l$ w% X  p( B# V
    http://127.0.0.1:5000 只能用本机访问
    ) F1 t5 p0 y6 ]4 g& d3 x
    ' J4 _" F* h% w/ P+ t$ O" j如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/
    + e4 d1 t- R4 l: W+ ?改为! R0 ]/ ]# R9 r- G7 H9 e
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

    + O$ J6 P5 P% @
  • 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 编辑
    2 y, x/ G; a* M. B
    Budha 发表于 2019-3-23 14:44
    : y: s- _3 d: K我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...
    - c0 q) D3 ?& N  B- s( Y$ l
    如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0
    ) P. O" O  z3 Z7 F1 r/ T9 B$ X1 F8 q
    如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径5 T+ N$ f$ i) U; p( m: p2 E

    6 _8 q1 U5 a. f. c1 d' o7 {, B查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/
    5 ~3 ~5 _, _) P' t请重新下载 mdict 源码文件,刚修复一个界面问题。
    4 D' u" F8 i( N" I( Z8 x
  • 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 编辑 ' w' L1 }: o8 \9 z* e
    Budha 发表于 2019-3-23 17:244 d4 y3 y' I8 q5 d$ c
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    % x. q$ F4 ^9 x% n, E5 i/ Z& I这个和程序没关系,关键在于你能不能远程访问家里的电脑
    7 V$ N8 S. |% T( T; n8 J1 d# D- N9 ]$ [( L0 R
    6 h6 n. j! P* a6 C. p
    在Ubuntu上简单试用了一下,很不错。; B' ~* s2 Q# ^6 p5 u6 w
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    ! Z8 s" x! K$ S& g
    : C8 K: ~& e4 [) g1 q词典code一定要规范,是不是做到xhtml标准的那种程度?2 Y( S1 F6 b1 i: \" y2 f- W
    还有就是,可不可以做成直接支持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
    ! P5 w- k. L" P: |" k8 `词典code一定要规范,是不是做到xhtml标准的那种程度?8 r/ m1 f% w0 \) M, P7 w
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

    3 l; T6 N) Q% r1 ^词典code一定要规范,是不是做到xhtml标准的那种程度?
    0 y% k4 Q% \. ?$ T确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。
    & n6 I. P$ H  ]  k( W" H7 u1 g1 q1 w( B( x5 A* H) m+ }
    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, U5 Y# L9 N4 H4 }3 V
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    , C; C5 a6 n- Z5 L, X4 L& t确切的说,是的。因为词典code是 HTML 代码,各大 ...

    $ k9 w& {9 M: H( J$ D' dmdx源码的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) t3 S; Z8 `5 I. E
    可以办到,但主要功能不是我提供的1 L% ^9 F; y8 Y9 o6 i
    2 m, y  ^' e. Z% U8 f
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    ; ^! S( b0 Z4 X! p9 u2 `
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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, ?3 \- u- S+ h. k! M, @/ T$ h
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    $ h/ g' Z; ]0 }7 l
    * ^  d2 f* O* z8 {0 v
    是简单些,但是会危险些7 U: y: h0 h9 F( Q" H

    7 J# `  q  U3 G) ?% R. X- H4 l1 k简单:; h/ p- E8 C# X: P8 Q: Y5 y$ e% H2 R* P
    直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射( R+ d, y+ M8 Z" ~5 U- I
    ( W/ Y( _8 Q8 C9 Z4 e. z
    危险:3 T  D% \/ a2 T# R
    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
    9 }/ A( n# s! n5 p. U1 ]0 Lmdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    5 I$ n9 V8 ]0 s0 K1 ]
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。" r: P- d  ]6 x- `! F

    % S! ?/ ~9 P: k/ U这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示+ i( _( j, W% o( ^6 o! U
    静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递1 i3 ?" x$ q0 U0 B  [

    % i0 K, c. R. r  N* m% ~& M显然第二种方法更有效率,用户体验更好。" K) X* ]3 U! {% ~" h3 S/ S# s7 W
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:091 |1 \9 r+ i7 ~$ s2 c; `0 H/ P
    是简单些,但是会危险些
    " H) J1 r+ H+ H7 E& h! ?/ x  P( ]- }9 a/ P" r" q
    简单:

    0 t3 g" d* m& M我看了下一共有5个地址
    ) \/ t# w* ^+ M1.物理(mac)地址
    . y; t) w% H1 ~6 t2.ipv4地址
    : |" w3 x$ o$ a3.ipv6地址
    $ E% t+ l+ p0 S4.默认网关
    7 c  x8 O) L3 r% L, g, q4 w$ {5.dns服务器% W3 Z+ Q" w% L0 y$ o" h' E
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16
    + l6 e2 E' |! T4 d& _3 i% }# z+ p我看了下一共有5个地址! E0 [0 N1 {4 D
    1.物理(mac)地址
    ' @$ K; V* k) J9 g$ F0 b2.ipv4地址
    ( z; Z/ J" ^. Y; Z4 N8 {9 P
    2.ipv4地址
    * W( z7 x* N6 `) n; K3 q
    : c$ A9 ], _2 w# O) O0 Wipv4: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 13:49 , Processed in 0.165963 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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