掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5663|回复: 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' w/ [3 t$ u8 T5 k: L9 }
    楼主呀,ubuntu的详细安装教程能不能发个呀?

    & T; h7 s& L( L7 r% C1 Y" E: {* Y" E# N  o/ v( F1 L0 c& Q. ]
    ubuntu 更简单,方法更多:! i; n; u/ m: C% I

    1 `4 K1 R* s1 k1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
    % b. y5 L* D5 v2 y$ W1 b" b2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip 0 _& J' P3 F8 g- m" {
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以! J9 k2 D) [* j) ~; ?+ {9 |5 O
    . c/ a+ I& y2 S; n4 S3 q
    4. 安装依赖包,pip3 install -r requirements.txt- u) \5 J7 [. u! B. C: N$ @
    5.建立 content 目录, mkdir content
    : Y, U: _. ~& d8 r$ z
    * e) J( g7 A7 ]( a' [/ G6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    ) e# _' ?" E5 |+ }0 d; ^6 c  L, ]& F8 x$ J: U2 _$ N2 I) S
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响) m0 l+ v. p! I

    & d4 H  o7 m' u9 r8 d8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...! O- i0 [- `: P
    9. 运行 flask run$ Q) y( M9 \  _
    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 编辑
    2 D) j) K& n! Q) |$ E4 [  E
    Budha 发表于 2019-3-23 17:24
    $ w' _) [$ o* d4 D2 [' u2 d, v我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    . L' p  m- e6 S0 [. j
    可以办到,但主要功能不是我提供的1 P) f9 ]! m5 l1 g  u9 |

    7 t! Y: u8 a% `7 G7 C: d( J1 o$ I1. 首先,运行我的程序,家里内网的机器可以正常访问
    % f% w' H6 ]# F% {3 [3 o2. 在家里 AP 路由上做地址转换, O1 y9 T* I' ]1 O6 u
        例如,映射外部端口 5000,到家里内网  <pc_ip>:5000, }. @# Y$ y- Q. H- I9 ]% T# C* W  Y
    - P% R* ]0 s/ `$ {
    注意:
    / O- J! A- F: W$ k   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以
    4 y0 G% w9 \5 G3 ?; u   2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决6 W- T5 O! p5 d1 q2 A
       3. 映射的外网端口不能是 80,或 443 ,ISP 禁止
    : M! W$ ^0 G% S' _  @( y4 W; j/ X
    0 Z, e3 W% e+ A$ [% J5 x# l% d总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。. M+ c+ K8 C" ^! n

    ) }3 ]% |* F2 d& }! F  R
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 ( ?+ O4 H' k+ Z: v
    AttributeError: module ‘mdict’ has no attribute 'init_app'! \$ v. R  j/ s4 x
    不能正常访问网页
  • 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 编辑
    3 ^. n0 N  I& a3 ?
    dengao 发表于 2019-3-22 16:57
    0 E0 Z/ W2 {# W  o5 {! g- t我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 6 {3 d* k: U" B8 o& Y9 N. _
    AttributeError: module ‘mdict ...
    % \. c* \: v; Q
    运行:flask run8 T) U8 f" Y! Q- F% k1 }
    试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    # d' T( d+ `& H* U% `, F这个版本有点问题,我已经更新,请重新下载,链接不变# ]) w% @/ r5 R/ l( Z
    8 S4 h4 d1 W7 G% \* L
    : P/ `% C- M7 S) v
    8 z9 {2 [+ ^- h3 r& j
  • 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 编辑 & [) ~5 L) ~& a2 z7 j0 H( M
    Budha 发表于 2019-3-23 09:45; N4 f6 E9 D% O- S! V# B* a4 v
    楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...

    $ J; n* a/ a* i1 \+ \- bhttp://127.0.0.1:5000 只能用本机访问1 h7 Z9 T+ i  ^5 T( u

    ' L3 p- ?+ S) p9 r9 E$ x; \如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/
    . a; v! y6 ]5 H, P4 Y改为4 w+ X; }4 z) N6 U7 I
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码
    ' W1 Y! t4 g! K
  • 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 编辑 % r( ], T- m# {0 S# H" E/ w) n6 B
    Budha 发表于 2019-3-23 14:44
    $ Z( g3 R4 c7 [5 A# O我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...

    7 \  i; i9 {/ a: l$ ~# H如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0
    & S7 O. H+ ~6 H. V' W9 g" R7 X5 m+ p! j1 Q. S# [7 n
    如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径
    5 b; Y5 d$ H9 D0 V. b; j* _
    ) K# j' _/ Y1 _  \/ j! e查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/+ _' m7 h; k# O- \) D
    请重新下载 mdict 源码文件,刚修复一个界面问题。
    " D3 O: k. p4 Y, a
  • 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 编辑
    ' V; D9 v5 a' T1 S
    Budha 发表于 2019-3-23 17:24
    1 }; I6 }8 j9 x5 h  Z# Y我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    ) Q5 l9 m* q4 }) C这个和程序没关系,关键在于你能不能远程访问家里的电脑7 m2 u% e( }6 Q3 {7 R# @

    3 [4 Z3 q5 ~" B$ A; F
    ! }! s1 L8 }* T/ |在Ubuntu上简单试用了一下,很不错。( R1 `5 ?- A' _; x, I- V+ w; d
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑 1 v: w  v1 U- e: R4 C  @" \

    4 Y. j0 ?, I- U+ h; @$ f/ q词典code一定要规范,是不是做到xhtml标准的那种程度?
    6 P/ H# ~( _) A+ _7 x还有就是,可不可以做成直接支持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) @; o2 c" V! y& s( O8 I( w
    词典code一定要规范,是不是做到xhtml标准的那种程度?! g; u; X: i* {* c/ k& w/ U5 Z
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

    7 R6 q* w0 Q" k# t! l" P词典code一定要规范,是不是做到xhtml标准的那种程度?* Z5 v+ L" ]) o+ P; @  O
    确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。; F* Y( ^+ z6 _) v. `
    % q2 X0 Q. [$ U. ~% K( 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/ f) `1 h( A/ b
    词典code一定要规范,是不是做到xhtml标准的那种程度?1 U/ C% H) x' M: W5 m8 v/ f
    确切的说,是的。因为词典code是 HTML 代码,各大 ...
    . Z8 d/ G, m& {. p& j
    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
    ! b% P/ v& v9 `1 n$ r) A  S可以办到,但主要功能不是我提供的
    * j: h% A  {( H2 x* u( E" K5 W+ z) h+ i+ ~! b* B4 E
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    * Z& Q% ?8 g9 J' d  H
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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
    - d4 P3 j& k: r7 t2 \! y: M谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    ) Z# S+ m+ l: G0 o; l: U

    $ R9 B$ f' A3 L5 l% }是简单些,但是会危险些& X7 k' j  e. s, s

    ! v3 v. r: n. T3 _: U. P  `$ A简单:
    / A6 h2 z8 U1 q5 ]) m: A6 r; f直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射: I, T. `; f' C3 q# T* ~; m$ H& r

    . H+ ]2 U' m! F2 J危险:
    + o% j& V; U) F0 T: VPC 直连到 Internet 上,没有经过防火墙隔离(Windows自带的不算)容易招到网络攻击,windows 补丁不能及时更新,容易被人攻入
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:18:08 | 显示全部楼层
    流星冲击 发表于 2019-3-24 05:48
    2 d' K/ t& }; tmdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...

    + V* V- a) X0 R3 {! O! u2 `8 `+ Q8 H2 k是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。& W' y4 v2 q: X3 [+ F

    6 M  G2 I8 o, q, Y这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    # _) M2 r, f, n# N8 E静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    $ M$ t8 V$ W, P* ]7 u& D1 `' k, Q) t; y; U/ F- m
    显然第二种方法更有效率,用户体验更好。
    ) F4 N9 ]8 E  ?6 O
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09' |, f6 q2 _9 S: W( P" X  B2 g; ^
    是简单些,但是会危险些
    6 w6 J+ [3 m) J- e4 V4 ]7 Q2 y( z9 f6 Q
    简单:

    6 a, z- g: ~2 _0 p我看了下一共有5个地址
    / O% d6 w% h/ }' _. ]0 n' ]1.物理(mac)地址
    ' m2 i9 M  x& {2.ipv4地址
    4 x7 w$ U% n2 l. j% o1 ]& W3.ipv6地址5 A) Z8 S9 }* T3 T; e/ k8 A' V' K9 a
    4.默认网关- O0 P7 l! @5 ^- _
    5.dns服务器- P- f! X( [$ U
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16
    4 F9 j* o/ S4 o! m  a6 f* O6 c我看了下一共有5个地址1 x4 ?3 d. H: X) A
    1.物理(mac)地址1 C, ~. S$ ?- n, n2 j! P7 _3 a
    2.ipv4地址

    8 p6 p5 z6 J  L/ |2 Y3 @' p2.ipv4地址- G! r/ G: V& H& \& s' s, p+ e; R
    * k) _) U+ _- Q
    ipv4: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-26 18:39 , Processed in 0.110432 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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