掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5662|回复: 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
    , I# ?+ ?4 \# r% R! c' w/ B楼主呀,ubuntu的详细安装教程能不能发个呀?
    0 a+ k' A6 m: Z8 Q3 _

    & r; H$ C9 w3 _3 R* [0 Tubuntu 更简单,方法更多:
    / q, c+ \7 c3 |/ m' m% A# X5 B  ?5 P' a5 Z' V
    1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
      w8 Q7 U) i0 D- y, J% t0 R6 z2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip ; ]7 h7 Z7 m; v
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以9 u, ~; v4 O, \; c2 [! o( f

      ]: V4 ~, k  D# s& J5 W" J3 {( T% O4. 安装依赖包,pip3 install -r requirements.txt$ P* F' r- a' l' r& W$ ^" [$ B
    5.建立 content 目录, mkdir content: B& R6 d) W3 q: z" ?. r) ~

    % Q  a0 h! W% M3 m6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv# V1 V* p4 i/ e6 o! _; q, Z+ G6 K

    + Q9 a0 l/ C9 |! n2 O& `; T( z7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响
    7 e4 ^1 t5 k+ w( ]5 {! T  i% E) o8 u0 F) y
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...
    8 e5 L, n! O  k& a: _/ m9. 运行 flask run& U5 m/ J" C# x; c$ s
    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 编辑 # e* ~& @& |% W+ M  n/ D  o# Y
    Budha 发表于 2019-3-23 17:24
    / a) C% ^' y  e! |. T" u我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    / {9 |/ c% q. K; ]1 I+ S0 l4 S# v
    可以办到,但主要功能不是我提供的
    0 Y/ v! k7 Y3 r, k1 I% u7 H" ^5 V, J' s% p% q2 G
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    & @# J+ q  e/ d) o2. 在家里 AP 路由上做地址转换
    4 T& |. N* L3 }" h# F9 l$ C    例如,映射外部端口 5000,到家里内网  <pc_ip>:50007 R& g4 p. N/ t3 T
    * p$ Y- I! B4 C& E  t* t6 h" n5 Y
    注意:
    6 h/ x: V% f1 y6 J7 b7 x2 Y& `   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以' x1 u( n" t+ O
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决6 O1 U* G+ K: u# ?) @
       3. 映射的外网端口不能是 80,或 443 ,ISP 禁止
    " v# L* V! c2 [! S8 Z* U) s4 F
    9 c& x. u; T+ p( W0 E总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。! E+ E) Z; T8 Q' Z
    8 t$ D1 }& w( E4 W
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 / ^6 X# h( E9 c/ ?
    AttributeError: module ‘mdict’ has no attribute 'init_app'/ }6 ?9 s$ G6 k: m
    不能正常访问网页
  • 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 编辑
    . \+ @* a# p3 {% E: {
    dengao 发表于 2019-3-22 16:57+ F8 d- Z+ z, X3 E- x/ V9 j) g
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
      C# o9 X! j/ O: x) K! T9 g3 ]AttributeError: module ‘mdict ...

    3 d& l9 y* Z3 ~9 k- c运行:flask run
    / W- B" J( h  t" R试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    4 J0 m$ |, p! i0 O3 f4 U这个版本有点问题,我已经更新,请重新下载,链接不变* d6 j  V% k- _$ l5 Q$ |5 X3 \5 H

    / D5 K0 i# G3 O9 V
    $ t: j7 w6 j0 {0 a0 T
    3 z0 P" p; T' I+ f6 d
  • 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 编辑 1 |! X+ i! h9 y/ K) z! [% Q4 w5 g9 T
    Budha 发表于 2019-3-23 09:45
    * X9 j, m& A2 W/ {" J楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    7 |- T9 r4 M# V. ]$ _  c
    http://127.0.0.1:5000 只能用本机访问# _# L1 y  o- M0 Y

    % S' n8 k) z+ B' C( d如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/
    ' i2 ~6 n' K3 M% `改为
    8 Z2 f2 I# z9 g! }8 `6 l
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

    1 W7 i" @8 q& ~$ Z$ J
  • 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 编辑 9 ]; i- L) e/ b' T9 y
    Budha 发表于 2019-3-23 14:44
    6 ?0 }  Z7 K  d) V. l5 z+ Y我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...

    3 R& O; _/ B9 W3 x) y& R1 s( S如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0) t2 R; K/ l, E& l
    2 u, f- g% A) A- t6 n! {! p% }
    如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径
    1 v) X4 e) `0 ^- d6 u* Y& _8 i+ I( t! b& F/ v' E! b
    查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/3 t8 f( F& b' U1 l
    请重新下载 mdict 源码文件,刚修复一个界面问题。* L6 \* p) }: i7 V
  • 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 编辑 5 f, F8 @" A6 o8 L$ @- X0 ^
    Budha 发表于 2019-3-23 17:24
    1 }& ]. q* }* O0 ~, g# |我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    + R5 G  U2 c) }. w. v: l* a这个和程序没关系,关键在于你能不能远程访问家里的电脑
    - f6 q' d  H0 ]& U7 f# p  ]
    8 S9 F1 y' e7 R7 c
    9 p7 M+ s1 w$ G' C; n$ H% s在Ubuntu上简单试用了一下,很不错。
    * K: N, h+ g  ]. I  l
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑 , E6 u/ B, J# a: X
    2 n$ V, n( M) U- u/ m8 D0 g- u
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    $ e; y. A1 r9 z  J3 l还有就是,可不可以做成直接支持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
    ! f2 |6 u9 {/ a词典code一定要规范,是不是做到xhtml标准的那种程度?! Y" a" J! W0 F
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

    8 J: f3 e" Q- Q( ^8 D词典code一定要规范,是不是做到xhtml标准的那种程度?* }5 O2 t+ A7 w
    确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。$ ]+ z7 r& s! ^7 D" S
    $ h3 q8 j- G- y5 N5 C( ^7 D. H4 M3 o
    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+ A$ h9 Q, j9 N词典code一定要规范,是不是做到xhtml标准的那种程度?
    # X, h4 z5 D: n3 m, J! J' ~+ ]确切的说,是的。因为词典code是 HTML 代码,各大 ...

    1 C1 }# ?* K0 ?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% K0 W% X& r0 k( `! l. |- F' e
    可以办到,但主要功能不是我提供的
    4 m$ d0 b) |% N0 R  f4 ~  z. u( e6 \. m6 D, G5 S
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    % ?4 x7 Z; z2 N. D5 n3 W! }
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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
    ; \) b3 U5 [9 a谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    ' v; ^+ ~: q9 R8 e( h

    9 e" L! K( v1 I" x& z) Q% ^  l) X8 m是简单些,但是会危险些( G6 t! V1 Y9 {5 X# u5 C, O
    ! c; x; x* U; u
    简单:
    / f, l1 v! T2 x* P直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射% t5 J% w% t' j% q* h) i% t$ c7 M+ v
    " k3 i% G8 t" w$ T
    危险:
    9 a/ c9 Q; w; u" b$ _4 u# a, p! ZPC 直连到 Internet 上,没有经过防火墙隔离(Windows自带的不算)容易招到网络攻击,windows 补丁不能及时更新,容易被人攻入
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:18:08 | 显示全部楼层
    流星冲击 发表于 2019-3-24 05:48; |. s% r6 E$ o: m9 ~5 G7 B  {, u
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    1 V( u/ O. H% q7 N/ n: ?
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。% m- Q/ H( y. U2 R# O4 T

    5 z9 C9 g7 H2 T2 W+ e9 R5 h0 b这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示6 Z7 z3 g+ N9 v0 B$ m
    静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    5 K, E) x1 \, V1 n5 t8 t4 k4 Z6 Q
    9 w4 h2 J+ I& T. T显然第二种方法更有效率,用户体验更好。
    7 b+ R4 l8 b+ [8 {' p0 k: Q! M. L
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09
    $ A+ C) ]$ {" D6 V; V  i3 n是简单些,但是会危险些4 H3 B0 r2 I% o  P  L+ j' R8 h
    6 x/ V5 a( s) k9 ~# g9 u  Q8 I  y
    简单:

    : Y; u3 V& V# t# g0 {2 J我看了下一共有5个地址4 C" q0 J" ?/ |3 d
    1.物理(mac)地址
    ) b8 G; N9 w: p  o2.ipv4地址
    ! C" l& |5 ^0 m: K0 m1 S! _0 ~3.ipv6地址" [9 M% k( o  w4 d4 G2 f- u- S0 h
    4.默认网关# N# `- H* |& f6 d$ f! f0 y$ m
    5.dns服务器
    # P  q- [: {- n$ K9 p我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16, s6 v+ T3 X" Z- `
    我看了下一共有5个地址4 ?0 i  j0 G6 M8 O( v8 C% \
    1.物理(mac)地址
    , F: @0 P. a. d2.ipv4地址

    " A+ |/ b& H, w8 _" C2.ipv4地址
    # G/ _8 g! v; U" U: g* f  l+ P$ _8 k4 N% B
    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 08:01 , Processed in 0.393984 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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