掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5666|回复: 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
    # @3 t: y4 [" ?  q- E楼主呀,ubuntu的详细安装教程能不能发个呀?
    ' C& v9 S) l7 A  I" T' R4 ]0 Z
    2 Q% N$ }- D4 n0 x. d* l& p( m5 Q
    ubuntu 更简单,方法更多:0 d. \% D6 i/ L' f) W, l/ ^
    % @) z, P. U; l) i! t5 s3 h
    1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
    6 O  L# `& u$ S) H$ }7 s8 \( t2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip # W( T+ C( x* H9 i
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    1 {; Y( R6 G3 [8 L, f3 X* b+ ~; y/ ]( C. T5 x+ m9 c
    4. 安装依赖包,pip3 install -r requirements.txt4 H. o& T# I/ F! q5 L0 n
    5.建立 content 目录, mkdir content
    - n9 U0 q, a6 I9 I0 d0 a, K4 [* _
    , {) D: o+ h* o) s6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    7 J# q  i& ?9 `! l+ l, v0 B6 p2 S9 ^0 u' x
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响" Z/ @, K. \! z) m

    ' f" Q- t2 q1 o: |! X$ f' \8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典..., e, z3 p: P0 n( L1 a3 f
    9. 运行 flask run
    7 Z: ]1 b. k4 n. c2 t2 Y+ F" K10. 浏览器访问 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 编辑 : F- U; K: n  t% C  \
    Budha 发表于 2019-3-23 17:24* K  l: [  ~  `" z$ d, g6 {2 `) R
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    0 O0 r' e$ P. S" @* f: N% n
    可以办到,但主要功能不是我提供的
    ( D/ z- {; Z. Q' X9 X5 t8 l. i4 f- U. b/ o$ p3 C
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    2 s. L, p( t, p. {% S+ v2. 在家里 AP 路由上做地址转换
    3 T# E. b0 x1 |* G* M! q7 m    例如,映射外部端口 5000,到家里内网  <pc_ip>:50009 ^' z# f+ w/ m9 |4 e" @
    8 C6 v& F/ k. K& D# }
    注意:
    # D$ J. R: l# K- ~8 t, W   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以6 A( K4 G' H9 F
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决
    - ^, ~9 ~& ~8 y' m   3. 映射的外网端口不能是 80,或 443 ,ISP 禁止) T# H6 A* H: b, ~( e

    1 F1 h8 o$ i* l% u. F总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。7 d, M7 t3 E2 m, y+ O, ?0 O
    0 Z8 d- f& f. v$ z$ }! R
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    - H' i  x# A9 e5 \  AAttributeError: module ‘mdict’ has no attribute 'init_app'
    ! _% z- k8 B$ [4 s+ x0 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 编辑
    ( U% }. m1 m4 _% ?7 W; ]% R' M; U
    dengao 发表于 2019-3-22 16:57* ?: U3 s7 l9 b
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 # j$ D2 ?' l6 g4 E3 B
    AttributeError: module ‘mdict ...

    # f1 S8 [1 }( a+ e) E$ V运行:flask run
    . o2 _8 E/ F! M( E- T& y. g试试
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-22 21:26:58 | 显示全部楼层
    7 z# k5 G5 }. O3 [4 z) t: L& ^
    这个版本有点问题,我已经更新,请重新下载,链接不变& y! z: S  v6 ]" P) m( n6 k3 y/ J
    : R7 O  @2 n8 ?

    ! _" i1 [8 h8 H' K2 O+ \1 \  `0 `4 I4 E% m: f; |
  • 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 编辑 * Q0 K+ f0 N4 {* G, X
    Budha 发表于 2019-3-23 09:45
    ( o* c2 Q4 V+ {  d" r3 C楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...

    7 K0 w0 x* a/ p& D+ ^http://127.0.0.1:5000 只能用本机访问
    - S, s7 M. m, c7 }9 H3 a( ~
    % k8 K6 Z5 c6 J' t4 P9 _1 [& m如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/3 b  i( u" f. [8 @" b* d& ]! t
    改为
    9 i  @5 \0 s+ F' p: p2 a: C  ?4 R
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

    " K) C) _7 F# 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 编辑 ' i+ g1 A7 l0 |8 `; b/ v
    Budha 发表于 2019-3-23 14:44" ]( P, z* Q1 u( W* c
    我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...
    ) I5 l9 [$ q- j9 _3 K' j* c
    如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.09 y  W% \) c2 S7 K

      z2 X, d( S) q# E如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径/ F" E5 Y& b( D  Q

    ; ]1 n' m8 V; \, e2 a7 M查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/
      [  G; F/ M  l) Z请重新下载 mdict 源码文件,刚修复一个界面问题。) Q! v4 X$ G. O, t$ d: [% x
  • 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 编辑   \$ l0 G, u( x  e9 ?
    Budha 发表于 2019-3-23 17:24
    8 @- ~2 `$ G& Z( L& l5 q  e我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    9 Q6 p- `& C' L( j. P
    这个和程序没关系,关键在于你能不能远程访问家里的电脑7 y- I7 k# I  o

    1 h1 G2 f0 Q1 T+ @4 x; i5 h# Z& c$ K3 N4 b% \, T# v
    在Ubuntu上简单试用了一下,很不错。
    1 t# f1 i" Q0 H& P" d8 \* i8 Q
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    " }1 W: N9 \0 ^- o. q
    % j3 g; G  X: U8 y2 P词典code一定要规范,是不是做到xhtml标准的那种程度?; W/ Z8 d' D# w$ K# \$ Z
    还有就是,可不可以做成直接支持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$ t* {( Q; e" L" \
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    ! ~2 @8 v. Y" `/ F还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...
    / A  L! q. l" n) X  t4 W( O8 _
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    ! U. Q/ d8 Z# I" I确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。7 g* G  F' u" `. n0 p, V" A# k

    ( v% [! V% S1 }% btxt源码没做过,不清楚,但理论上可以,但可能会牺牲通用性。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, W9 T" \+ f* Z7 B) }7 ]
    词典code一定要规范,是不是做到xhtml标准的那种程度?7 C: I# X2 I, ~* v: [  d: W) Z
    确切的说,是的。因为词典code是 HTML 代码,各大 ...
    9 t0 A9 H# t9 V3 m1 c' B- B" @
    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  z1 a' A( k5 v  O3 c9 d' I. J
    可以办到,但主要功能不是我提供的  B* @4 ?0 p+ {6 V1 Y

    4 y6 I) R% }7 m* G2 i& @5 C1. 首先,运行我的程序,家里内网的机器可以正常访问

    7 m; N+ O  R. I4 q0 y0 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:370 L4 A! g9 l1 A4 |  W( h3 |
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    " i$ j9 B2 ^& t6 A6 D( B# N

    3 f# W/ v6 y* \$ T! N2 g' T是简单些,但是会危险些: V# ^( O7 Z5 d9 x$ n% U6 I
    7 x5 ?; i6 i" ]# c  b
    简单:" f6 ?2 d+ a; T* S3 Z1 O" Y
    直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射7 K6 y; @: D5 Z5 D0 l+ e& @2 {
    " F( s& A' ^4 O( ]! _1 J
    危险:) I$ L$ V: j; y3 M6 O
    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( @; ^% [; T0 ~
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...

    1 s" t5 z. R; f是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。
    6 {* m! a5 n# {' H
    2 A# z7 S, e$ H, P0 _2 |. g3 E这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    2 D7 q' f5 U8 P1 y静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    ; q9 k7 ~' V& k9 w# N. c9 A* l  P. ~1 T- S' ?& j
    显然第二种方法更有效率,用户体验更好。0 D- o1 \; C' G; E3 L
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09
    . F( v4 P  N( r  Z+ s( L是简单些,但是会危险些
    4 \# j6 h7 m& `  Z9 [0 o7 p
    * o" o/ ^2 n8 I简单:

    / v' Z- S3 ~5 S  Q$ T  j我看了下一共有5个地址# o% \# Q' W' `7 l
    1.物理(mac)地址4 i- o- [, i5 t2 a% G: L4 J; r6 i
    2.ipv4地址
    % v5 t5 Z3 P" Q5 {3.ipv6地址  I4 C( R# e1 Y
    4.默认网关$ l! q) l% _$ k6 u8 x5 {! n4 |2 x
    5.dns服务器
      M( _0 |; |! Y4 H# f& b+ ^4 i0 B8 t我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16
    . h- X4 ~& v7 P& l9 u我看了下一共有5个地址
    ( q0 Y( b6 ?" {5 D1 d1.物理(mac)地址  `- a4 E. z0 m% K1 j9 _5 z
    2.ipv4地址
      t& |) W, c1 N% _8 q
    2.ipv4地址; r0 `0 V& E" V+ C  u* r

    5 p. T" H+ R+ j9 qipv4: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 02:38 , Processed in 0.108260 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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