掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5632|回复: 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
    ; Z3 c# {4 U1 B6 a% c5 g. K楼主呀,ubuntu的详细安装教程能不能发个呀?

    3 T. Q6 u; o3 Q; y. P: v! Q$ ^1 ^) A& ^  t+ Y
    ubuntu 更简单,方法更多:# B2 }5 h- V) r0 @$ N) r$ S4 |
      {2 E( x4 x2 u4 T' Y1 H3 S
    1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
    * {1 `( {7 k7 Z2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip
    % ?0 ]4 K7 \6 _6 }6 }3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    + S7 T: G! {: U! [  A. G% T# ]
    # \% H/ R7 O, [1 V8 ?- z4. 安装依赖包,pip3 install -r requirements.txt$ ~5 U, z* B7 W9 m
    5.建立 content 目录, mkdir content
    : [+ J8 R# [, B. K( d
    : L) O# u4 L- t! Y8 J- _- ~' i6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv9 a+ c6 S! S6 m- q9 q

    , [" y0 P8 R' L! a* |. R7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响. f: z+ p3 n+ D/ }1 ]

    6 K5 p- ^) n8 X2 M; f/ g% E) y4 p8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...1 t0 q  ]* F( T! C! e
    9. 运行 flask run
    % K% p- r) I5 L# n9 v; F10. 浏览器访问 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 编辑
    ) z. U2 o) I) d4 L$ b' F# V
    Budha 发表于 2019-3-23 17:24& D& t9 R3 e  E" k" N  i
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    5 S8 f$ i( P" R/ q$ Z( |% C可以办到,但主要功能不是我提供的
    * j- q4 L) y  P4 K8 C9 d2 k2 m5 g/ v% |$ t5 M: Z7 S
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    ' U- T( T& R. }* g* Y; ?2. 在家里 AP 路由上做地址转换% y& n  u& P9 p
        例如,映射外部端口 5000,到家里内网  <pc_ip>:5000" X! |0 ~5 X9 s1 `
    . d0 W& \8 W8 b4 m) @
    注意:8 i7 p* ]( `* P% c) o. H. ~5 h# V
       1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以( Z) G: H" e0 S- d! L, ~
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决
    ( r, |( ]" i0 A8 x   3. 映射的外网端口不能是 80,或 443 ,ISP 禁止( J1 I6 `7 S) H+ r/ X
    8 t7 y, k9 {: a; m+ {
    总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。5 \4 h4 c: Y9 T& j1 ^1 z  e
    8 U/ r( H! j  E& J5 D
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    $ |2 q: s; u9 ~AttributeError: module ‘mdict’ has no attribute 'init_app'
    ) A# w7 R4 M6 t- O4 H不能正常访问网页
  • 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 编辑 $ D) N/ O% u. J8 w$ i
    dengao 发表于 2019-3-22 16:570 B$ X, b) ]# S6 f: u; t. {( I
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 9 i; v' `* F- c. C! S
    AttributeError: module ‘mdict ...

      c6 }/ S9 q1 `7 S: }0 E- q运行:flask run: e6 Q+ I5 @" L
    试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    # }. g) y" u, x* I0 H7 w7 ^这个版本有点问题,我已经更新,请重新下载,链接不变" B6 m& B& `1 P  \
    # b; x6 ?1 R; n% @1 s& v+ R' |
    . r$ ^8 s0 c/ X+ t
    9 x. B9 w6 r/ W5 V  i
  • 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 编辑
    " b# D; q# r+ v8 |* n& T4 p, p
    Budha 发表于 2019-3-23 09:45
    9 i% P  G% o$ X7 k8 i5 z5 _楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...

    . L, g4 Y2 p, Y* R+ q1 Yhttp://127.0.0.1:5000 只能用本机访问
    ' g' N2 z$ s2 |% N7 x
    " O( B7 z: T: F" ~/ }( r如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/
    , s# d# x! {4 F改为
    ( p5 V% R6 B& ]9 D* t& O
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码
    & E# S9 q! h$ \3 P6 a4 |& g, A/ 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 编辑
    $ @4 }, M* Y# {% \5 t8 U- L4 K
    Budha 发表于 2019-3-23 14:44
      w+ V2 V$ u; Q; P# k我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...

    ; P+ B4 _( N: Y6 @' ^2 J如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.04 D' z1 ]0 t1 p- Z) ~8 t. i
    / p8 l8 D6 D7 W0 k- I" t8 `
    如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径
    9 Q2 y/ l9 c6 H4 {8 C3 s; \. X
    & E$ B% I: v, W& O查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/: Y! n: e+ {# G$ \2 |1 u3 x
    请重新下载 mdict 源码文件,刚修复一个界面问题。
    : H7 {1 d: W5 i0 ~& p4 m9 Z
  • 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 编辑 / `8 }! `  R  ~1 q
    Budha 发表于 2019-3-23 17:24! |5 b  a( g* \, g% Y
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    " U6 F5 a( o% k. A
    这个和程序没关系,关键在于你能不能远程访问家里的电脑3 t) u2 B. [& u% z& P! c) R
    % ^' f  r' o0 P
    ; T8 ~+ x; D9 O$ g, b
    在Ubuntu上简单试用了一下,很不错。# O# B5 {; y5 R3 `5 V9 x/ m
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑 # U; p3 e: G' @# v
    1 l/ t: g; n7 V; V  Z0 L; ?
    词典code一定要规范,是不是做到xhtml标准的那种程度?1 H) ]2 D. u0 T+ p
    还有就是,可不可以做成直接支持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:327 x6 N5 `1 H! Z6 d* v  l+ z* w. d: `
    词典code一定要规范,是不是做到xhtml标准的那种程度?! O! A5 {- T. a1 L
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

    " m% j9 Y' w/ q, Y& O8 k1 V3 K词典code一定要规范,是不是做到xhtml标准的那种程度?9 g& }" ~/ o( a0 Q+ E% z
    确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。
    , Y# U7 l' H- V7 e) a% m3 S* @5 ^
    5 j4 G2 E2 Y+ a/ L, @* ttxt源码没做过,不清楚,但理论上可以,但可能会牺牲通用性。HTML 软件原生支持,TXT 格式千变万化,没有统一标准,支持性就差了
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-24 05:48:07 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 05:292 n$ b. L$ J) U( a) f4 U. ?8 j! H
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    - Z+ @. f3 D2 G; \% ^; A0 g确切的说,是的。因为词典code是 HTML 代码,各大 ...

    1 Q; U. V: O' B0 |4 S# ymdx源码的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+ l) z( @9 y, U. `
    可以办到,但主要功能不是我提供的
    ! R; a' V* Z7 |3 O% z+ r% [8 ]# t$ h& M+ k& K8 w; q
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    4 Z2 q3 p( x- r% Z4 E( a
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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
    5 }# L" E3 |+ ~# j1 L  @9 Y谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    0 o8 \& {  `. y

    ! h1 C' k( x7 k9 Q是简单些,但是会危险些
    ( }5 s3 ]: S3 J$ C0 z1 G# n/ n% }7 D5 _- ~& a, q4 y2 R
    简单:6 I3 D  a" k+ O+ S+ W, x' z2 ^) r
    直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射
    $ q0 h) U1 u$ |7 d- f9 }* _0 Y* U
    4 A3 s3 V7 [8 w9 W! j5 p( L危险:
      z: F1 d/ w4 ?* l; _% rPC 直连到 Internet 上,没有经过防火墙隔离(Windows自带的不算)容易招到网络攻击,windows 补丁不能及时更新,容易被人攻入
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:18:08 | 显示全部楼层
    流星冲击 发表于 2019-3-24 05:485 J. c7 C9 o# g& D; a. u- D
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    2 g& F- `5 c- |8 B
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。
    % @. ?' \9 @- {
    + K- X0 F. E. |2 g/ N3 A这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    $ C  r' j6 K0 b8 L/ M! X9 [/ h静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    , `. c+ c: n+ r* p2 Y' H( Z" W" @  f5 N$ a5 n+ r: J* r
    显然第二种方法更有效率,用户体验更好。- O9 s2 [- t9 U* I! g) y. W
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09
    9 P" R. v0 D9 w  J* T是简单些,但是会危险些  \# n  [1 T% G9 N- T; Y( j7 |
    2 j4 j3 M6 u/ S" }( K( ^* ~! X, b& N* ^
    简单:
    : L- H  V: u% M7 `2 K) I
    我看了下一共有5个地址
    + P  v* V1 i; H1 t6 _- `; G3 I2 K1.物理(mac)地址
    " d& l# L+ v; w9 {2 Y1 E% @8 v2.ipv4地址  W) z0 g% C& f( J6 P/ i+ B3 `
    3.ipv6地址4 y- `& x4 e& r7 D; N
    4.默认网关8 d6 m2 [2 Z: a' m7 X  [  A5 t
    5.dns服务器
    3 Y; W9 |# \) J/ S( p4 f- K我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:169 i4 h" r, t+ C/ o4 T$ \
    我看了下一共有5个地址; y5 ]5 L  R" B1 ~# S
    1.物理(mac)地址* O3 \1 _' v8 A2 R; ~* @
    2.ipv4地址

    - H' C$ @9 N" `2.ipv4地址
    * B) u0 L- y* `7 F; V7 N. Z
    $ d# K0 q2 B$ k$ A- s) V; A$ {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 08:28 , Processed in 0.118359 second(s), 17 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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