掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5682|回复: 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  e5 e. a5 |6 Q2 ]* v" @
    楼主呀,ubuntu的详细安装教程能不能发个呀?
    * e% h" ^7 y9 d8 o. Y" t$ L8 l' ^( c

    % `/ ^( r( x+ {% Rubuntu 更简单,方法更多:
    1 u: J- J6 j$ h" o1 C* ~/ E' |7 Q2 o$ X6 g9 g( Z/ Z# y" u4 E. u
    1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
    # g0 B% F/ P) O1 o- F, s2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip
    " b0 \  l8 i8 }# J/ l$ n$ B8 l4 o3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以9 |4 {3 f( l6 V; g) |" z/ B5 J

    1 y' Z& m8 v+ _( g- x% Q! m; Y% q" e4. 安装依赖包,pip3 install -r requirements.txt  \9 S* w- l: b2 Q& g; J+ T8 e
    5.建立 content 目录, mkdir content
    . A0 r& r$ }, T3 s3 P7 |- @2 C5 e0 Q$ S
    6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv) Y- I- V, t8 w& [& e: u1 H
    4 u* z, C% R* J' l+ S2 P
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响; V* b# e% }7 |4 l+ w

    7 W! z6 F# K5 z: O3 O: R8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典.../ |, x. F  V: k+ [9 R  H
    9. 运行 flask run
    3 _$ h- u5 e1 e0 `5 @- G; H1 z+ O10. 浏览器访问 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 编辑
    5 X7 J9 i; X  d) `" e* R1 ?
    Budha 发表于 2019-3-23 17:24; l: x& F1 ^* ^3 }0 A0 I! o
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    . k4 x- }& l5 Y% |5 k# o可以办到,但主要功能不是我提供的1 \+ x. }4 x4 _+ @' Q  ^& K
    # Y! _: z4 ~% A
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    " |. e6 ^; s$ ?1 F& Y- Z% ]2. 在家里 AP 路由上做地址转换
    6 ^: v/ Y# p" Y) ^    例如,映射外部端口 5000,到家里内网  <pc_ip>:5000
    ) \, G0 c. R8 J+ o# r+ W; G9 [$ j0 n; S% W$ w0 o
    注意:
    & q9 Y+ b% ~+ L   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以
    # w# d* K% l4 P( v1 x5 I( K7 H   2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决
    9 [8 P7 |1 X3 n: ~9 ?   3. 映射的外网端口不能是 80,或 443 ,ISP 禁止
    : W& n2 r3 }% |! o$ j- {( S
    0 C8 t  ~/ A# {- M& d2 W1 Z3 s总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。3 Y% y: M% Y' M. b7 e

    # F- |* ]: }1 a
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 3 d# {6 K2 |( u
    AttributeError: module ‘mdict’ has no attribute 'init_app'
    % l% q6 S& r" h+ }+ {0 B不能正常访问网页
  • 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 编辑
    1 f$ H/ S) Z/ k) K0 j/ X- S) _
    dengao 发表于 2019-3-22 16:57
    % z9 A5 G/ L$ ?$ Y4 p( p6 e" q我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 8 Y+ r9 t. G  s  H+ i, O
    AttributeError: module ‘mdict ...

    ) j  K8 i3 a' I: z% \+ |运行:flask run8 m. j3 u; A6 G8 W, v  e6 Q
    试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    8 Y: L! ^7 [& e/ m" t; O4 K这个版本有点问题,我已经更新,请重新下载,链接不变
    4 q; \& t5 n4 b, }# Q) _1 a  @- J9 _# n8 J4 N$ h6 Z( H2 a

    0 a, }2 [. b1 A" U% l& H
    5 G2 P3 @4 h; n3 T) a; C
  • 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 编辑 . a0 Y# `" W; ]* L6 U
    Budha 发表于 2019-3-23 09:45
    / K" i. e" J% U% D楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    * @, R" U1 g3 H- J# r! C- G
    http://127.0.0.1:5000 只能用本机访问
    . k. w' h& `& I1 |; Y- ]: M8 }7 T
    " ^; c) f6 ?$ n7 _* ^% o如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/
    * {8 D; [: R, N; O+ |  {改为
    , B3 n# g* H$ F
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码
    + h: I/ H0 ^$ _; B
  • 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 h* {. l; x9 O0 i, d* ]
    Budha 发表于 2019-3-23 14:44
    6 ?2 e9 C! l; Y( w8 Q4 p我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...

      g0 ]! V0 N3 i* X如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0
    ! V2 f2 K* ~7 Z1 Q3 X' D5 w+ y# B  c% A- U5 E% Y
    如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径
    7 {# S+ i  @0 I5 f4 P
    3 H: H: L" D1 J+ m5 E  p- K, k4 y查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/& Y& s! H! |3 L+ p! F
    请重新下载 mdict 源码文件,刚修复一个界面问题。/ I7 d  n1 {- ~6 U4 P
  • 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 编辑
    ! q5 W  M+ N. E. ]. D
    Budha 发表于 2019-3-23 17:24; W2 A/ W4 K) }4 O
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    ' o* z1 T' H: y7 C
    这个和程序没关系,关键在于你能不能远程访问家里的电脑
    ( A& E+ c1 Y! @, N) Z+ o* x, o- H  O' S

    ( a) Y; _8 O& n" c: o& H在Ubuntu上简单试用了一下,很不错。- Y9 @4 a9 R( U( y5 C& y& ?
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    5 B4 J: A1 o" z* ?! x; t6 }$ B8 i" b7 `! A0 e4 a8 p0 r3 n
    词典code一定要规范,是不是做到xhtml标准的那种程度?* j+ I9 V' s3 y% a6 ]. H; V
    还有就是,可不可以做成直接支持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
    4 N1 D9 ~/ b) s3 M6 f  N词典code一定要规范,是不是做到xhtml标准的那种程度?
    ( m# ~' A5 `6 R# I- n/ q( Z; j还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

    & \% H& u' x3 G$ r( |词典code一定要规范,是不是做到xhtml标准的那种程度?
    6 e! ^% s* [2 E3 c( |& }1 h' x确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。
    " [. l5 ]8 [! B: y1 m% ?: z0 v9 M, t5 E( m) E& E* n0 A) e7 d# P" C7 ]
    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# b/ z( L; [7 s% e4 Z0 a4 o
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    5 b2 H" y& I4 {/ q2 t: r" f9 W* O确切的说,是的。因为词典code是 HTML 代码,各大 ...
      U: L# w( B1 i! e
    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, V" O; q5 a* v7 i
    可以办到,但主要功能不是我提供的
    " ~! C- o' w8 y# T
    . _4 ^# G) t8 s1 G$ [1. 首先,运行我的程序,家里内网的机器可以正常访问
    ' v$ y' \% r0 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) J' {7 i: b% s
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    7 o% ~. E3 P& k. S$ e
    % i2 g+ r! V2 |% T! o1 ~
    是简单些,但是会危险些6 P/ c+ {) N% ^2 n4 V. J- ^
    # E5 L2 k+ T' S" y# c& J1 @! F
    简单:
    8 f7 ?/ S! W/ I7 t' j2 c$ b$ C直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射
    4 }6 x8 `5 z' ?0 H. q6 p
    9 v. H2 ?! J3 ]" Q- ~  k危险:5 [& t, s. M* H/ t
    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% E; S, I! h4 w$ G
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...

    - q" T" E. b. W: p) V# ?! q是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。& S/ _; s" m! I& H0 B
    * \) A/ A3 [- E- a$ \
    这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    6 Z- U" k4 [" x2 I2 U* @静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递" e; P8 R& ^0 ^
    9 Z: F& }: ~; O# z* t/ o
    显然第二种方法更有效率,用户体验更好。3 ^6 H: b; Q" s2 ]3 Q* t
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:090 D2 C9 D  y! X1 L
    是简单些,但是会危险些
    % ^; l; P5 ]' ~1 R2 F/ k& F6 o; D5 c3 _7 B# z
    简单:
    & E1 e7 p0 d# O/ s
    我看了下一共有5个地址4 G' Y: q6 ?# d3 c# C7 a6 ]. I& s
    1.物理(mac)地址) E# B6 v2 {! j
    2.ipv4地址6 M( M; t  ~* g6 }2 M
    3.ipv6地址8 Z2 F) E. A; N: l; d
    4.默认网关
    & @5 h: ^/ h6 N& N9 E; ?5.dns服务器9 X7 O9 U1 r" p; T+ ?
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16, R& J6 N6 o) ?; k4 T8 ~2 i
    我看了下一共有5个地址
    ( R6 t. K' A) V. @9 ?/ D0 n1.物理(mac)地址
    5 V$ v. T, j9 ^" e& T! l2.ipv4地址

    , U% V6 q) T$ ~: n8 t% [0 o2.ipv4地址  M; U) N, |7 _9 ?

    5 q2 {/ H. d6 Hipv4: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 18:33 , Processed in 0.089930 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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