掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 10722|回复: 29

[新版发布] flask-mdict 架设自己的 MDict Web Server

[复制链接]
  • TA的每日心情
    衰
    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

    发表于 2019-3-22 12:21:41 | 显示全部楼层 |阅读模式
    购买主题 已有 95 人购买  本主题需向作者支付 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: U: H% h: y8 a6 |, T: [
    楼主呀,ubuntu的详细安装教程能不能发个呀?
    & j+ \) T! |( P

    9 ~- O7 c3 O/ T3 C, d6 y( g8 }& lubuntu 更简单,方法更多:
    4 i, s9 L1 G4 ~2 N8 o* v# h
    / f8 f3 G+ s9 T2 l; h; t0 @1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget: J' @5 e/ x; u/ i7 o- \6 y& ?
    2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip
      {" {) [' N, X3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    # i9 Q! @5 |3 f$ r9 @. k& A& y
      `5 \) {% D' b" C" T& J' x4. 安装依赖包,pip3 install -r requirements.txt# L# R' [9 R+ T) ^9 N- d' k
    5.建立 content 目录, mkdir content, C' f: J; [: f. r) [5 ]

    4 i5 ~# m' k1 N7 F, ]# T6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv1 ^" I$ H) `! L/ |, G' N* g1 ^; [! n

    * w. M9 d' h; m' e% f) {7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响! u" b6 M9 T0 Q. p+ G, Z2 u  Q

    7 ^( J& [, A& L( |7 H8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...
    9 H  @* s& {4 w; H  P& `* i9. 运行 flask run( e8 ]0 H# I2 Z! j! p
    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 编辑 # a" t1 k! _% {, t& _
    Budha 发表于 2019-3-23 17:24
    2 W. z! ~9 B7 t: [2 p1 x& @/ Y! e我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    , R- ~; [1 v* P8 o. L
    可以办到,但主要功能不是我提供的% O1 F, K* r: p" M# }
    , k! p, y- t- N& J- _1 n
    1. 首先,运行我的程序,家里内网的机器可以正常访问, g6 N* S6 X6 q% r$ n# S# |
    2. 在家里 AP 路由上做地址转换
    4 U& k* u5 t, W' u2 Z3 T( Z+ a    例如,映射外部端口 5000,到家里内网  <pc_ip>:5000& F6 Q& Z% [: [

      h0 r" G6 i4 D; X注意:, A( A" S; M9 B' n: Z& ~
       1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以
    : k7 @# M& I" \1 b% y, w# n( u0 ~6 `   2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决
    % W& u6 x6 J" T" ]: J( Z   3. 映射的外网端口不能是 80,或 443 ,ISP 禁止- w8 b) f* D4 y4 @
    4 ^4 B) b& C( E. z1 Q+ B, [
    总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。  ]: K3 C1 n. L  N. \$ d

    ' ~+ f, A% J) @
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    2 `, r% P/ G% o3 z' N. S/ sAttributeError: module ‘mdict’ has no attribute 'init_app'% a# L0 w, _# c$ J2 s' `
    不能正常访问网页
  • 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 编辑 0 V' V/ [0 h9 {/ s
    dengao 发表于 2019-3-22 16:57
    ! o4 `7 |, R1 |5 a我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 - M' E2 Q! G$ t* {
    AttributeError: module ‘mdict ...
    4 ]6 M' u) l, }! {2 |* z
    运行:flask run9 d8 H( O* Z% Y; _5 u, i( g8 _
    试试
  • TA的每日心情
    衰
    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

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

    ( ?( N. M, w1 @: D$ F这个版本有点问题,我已经更新,请重新下载,链接不变
    - U6 l$ O$ q) B$ U" i4 J7 q
    3 {% @3 S' F) s4 e: ]" z& _: L5 E4 U* a+ r
    ( c' O$ k/ F" o- v3 R; [5 |: S7 @" }+ f2 v, E9 B
  • 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 编辑 " [0 s5 S1 I  F
    Budha 发表于 2019-3-23 09:45  U7 `# I5 X; J+ f9 c
    楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    ; ~9 w* m5 A2 t# Y1 F0 g
    http://127.0.0.1:5000 只能用本机访问
    , m$ [3 ?: f" _* j5 w* Z" R
    8 ^$ S1 u  F- `. Z: r如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/
    ) U, N" L* X% l改为
    $ y$ T  u% w  h. F5 v  }% v
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

    , P+ M4 t/ z% n) R5 C+ 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 n+ q' F& o6 u0 W* K9 A% I
    Budha 发表于 2019-3-23 14:44% g% i7 K: E- {2 E
    我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...
      a: @/ a0 e/ U' U
    如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0
    ; y9 X6 g5 |& W# O9 P
    % \* ?) G5 ~* ]8 g2 w0 O如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径
    , d" Y) U5 O6 B" z9 F  w; T; D$ |; A" V7 h. I7 I- H+ W
    查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/
    ! q/ k( N6 K* ]/ H! D( W4 g5 g请重新下载 mdict 源码文件,刚修复一个界面问题。
    $ w8 M4 j- z& v5 W  E
  • 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 |1 v% h. c5 N  x) v& C
    Budha 发表于 2019-3-23 17:247 |+ _( ?2 T5 b; C# m* E7 A
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    $ W. }7 x: r5 d) P4 p
    这个和程序没关系,关键在于你能不能远程访问家里的电脑
    ) X& R. j- H! l0 W5 b* J  E5 i, J" M# e7 a( A% I# Q! d8 H
    % j9 m  Z* A- m5 a" ^, ?9 W
    在Ubuntu上简单试用了一下,很不错。
    5 u: @0 V. i1 _2 U
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    ' }, ?( `6 |0 W8 Z& M" |! j7 ]* I* w" W" A9 `
    词典code一定要规范,是不是做到xhtml标准的那种程度?( e! w  `8 K8 A2 x% m+ a% _
    还有就是,可不可以做成直接支持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! y3 M" L  r( R4 J! v
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    * d; g- \5 l3 J6 O2 _. R还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

      P/ P/ Q1 G6 R6 [1 s词典code一定要规范,是不是做到xhtml标准的那种程度?
    ( Q; p$ {# ^7 r9 Y5 b" `确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。- w) z9 |! Q/ k  L# `/ r# ]

    # H, O- ~: l( W/ o5 ntxt源码没做过,不清楚,但理论上可以,但可能会牺牲通用性。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, L6 m  O3 P% b6 ]$ `
    词典code一定要规范,是不是做到xhtml标准的那种程度?) W  V& }" y7 x. q* c. M+ `9 G
    确切的说,是的。因为词典code是 HTML 代码,各大 ...
    ( E0 x; u! b5 Y- Y! O# n% L- L
    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+ i7 j! S! X$ H" @" f; d9 v+ [& G
    可以办到,但主要功能不是我提供的
    1 N( Q# x5 I- x5 I
    ( O3 B3 i4 E' ]$ n% Q1. 首先,运行我的程序,家里内网的机器可以正常访问
    ' F- ~$ F4 P+ T& y* u' u
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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
    : H6 B8 v! g+ o' n谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    / w. j1 c2 X1 ~: f
    . a- l2 K- _# H* }3 F; y, @
    是简单些,但是会危险些' u- {8 B- F& k) G0 h% r* `0 V

    ) `  S% V+ ^) \. h简单:, v6 y* l: x9 ?( ?
    直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射5 c+ h* Y+ x8 S* L0 |) F4 H/ @  P
    ; ]2 o( D' O3 @. u
    危险:
    0 S. k3 e0 Z8 cPC 直连到 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 p" E) p( S  nmdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    9 g/ M  w8 [* L: _" F- P, O
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。: k1 e. W; @2 T5 k

    7 I4 t% `/ I1 `" n0 [) u; q这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    $ {, _( g7 u5 n静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    / p& k7 P; b. ^; e
    9 F- Y* `4 l3 L* k5 f; U显然第二种方法更有效率,用户体验更好。  U$ I3 }1 ]1 V* p
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:094 b# G( ~, p& F+ Y5 b, B
    是简单些,但是会危险些0 j- d5 F8 u, l& N
    # Q9 {" w( p/ m
    简单:
    , m2 h/ Q. V0 D8 n; C
    我看了下一共有5个地址: P3 r5 ]# [2 e4 K0 N
    1.物理(mac)地址
    7 Y8 ]5 [7 l( s% W4 `2.ipv4地址; I4 a; [4 d5 J& {, m7 [
    3.ipv6地址# j2 ^! W5 X& O+ p/ M6 k
    4.默认网关
    : i) k1 v6 ?: h7 Q' s5.dns服务器+ `  `0 Y  z1 S8 C* U' a: j! D& F
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情
    衰
    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16! x$ O0 s" q3 _/ k6 G
    我看了下一共有5个地址4 U& P/ Z/ n5 C$ d8 \) T
    1.物理(mac)地址  }* y' }- |8 ^6 N( B7 s; N$ s6 h
    2.ipv4地址

    3 g5 O% y5 E) L2 c! T7 U2.ipv4地址
    4 I' s9 k' j2 p5 O! W% |2 O) J4 F4 ^$ \
    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, 2026-10-17 09:57 , Processed in 0.032970 second(s), 33 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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