掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5681|回复: 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! b7 v& F& N& x" f! {
    楼主呀,ubuntu的详细安装教程能不能发个呀?

    - D3 h7 {1 E7 h% H% S* {( w& d+ \7 I( E2 r2 W6 a' u$ z
    ubuntu 更简单,方法更多:
    ( O6 t) [6 I4 h" s3 U# Q" ]' U. g+ k- K5 U% V, b
    1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
    ; t$ P  F; W: V: @( l# }8 C) ~) T$ m2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip ' r- o4 h  S7 S2 u7 A
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    . z/ f" I; }/ [) h& B" o, h  h: I4 N5 f2 C
    4. 安装依赖包,pip3 install -r requirements.txt
    8 l1 Q: I; p9 Q$ d4 |3 }5.建立 content 目录, mkdir content. e7 g5 b7 E# A/ J' k6 I/ s
    " [" |" a9 \' S$ _( L
    6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    / r: l  Z+ q% g( e+ D8 H7 p
    ! _3 r- Z1 ~" R, ~' {7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响
    ; b1 `/ }; ^# E9 a2 {; M3 I' T% S* K; y" n, Y' c
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...) s1 P3 l. T! b6 P2 T$ A8 ~) D0 O
    9. 运行 flask run2 p7 S7 P  B& D
    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 编辑
    7 V6 J7 o/ w+ `" q" {/ \+ m+ K/ g7 R
    Budha 发表于 2019-3-23 17:24
    $ N; q4 m! L  `) \我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    * i- k( v/ d# m3 d' B+ H  s可以办到,但主要功能不是我提供的3 F) s/ `3 g7 @, ]- M

    1 y- B( T/ G( H9 ?% m7 X2 L+ Y1. 首先,运行我的程序,家里内网的机器可以正常访问+ A+ _$ N% F4 p: a$ r( r9 @5 @
    2. 在家里 AP 路由上做地址转换( u" ~$ [8 j9 x' F3 y( }% j
        例如,映射外部端口 5000,到家里内网  <pc_ip>:5000
    8 a$ J* z8 ?" [7 [6 U% w, f: _+ A3 J' M3 D& H
    注意:
    3 h& ~' {8 E* E% v" g2 ^   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以. Z4 f$ U1 U% M/ C
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决
      r1 Z2 i+ |1 R# f4 |1 |$ z   3. 映射的外网端口不能是 80,或 443 ,ISP 禁止
    + P8 C/ m9 v1 W' `) f# K7 ]4 M* j, k/ S% R
    总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。7 k* w4 b* |  v
    / R. \2 r+ `! L  J
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    ! H8 h5 K( g7 M: i; `. EAttributeError: module ‘mdict’ has no attribute 'init_app'
    0 i$ S4 ^' T* w$ J' b( c不能正常访问网页
  • 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 编辑 % Y  i7 Q; o; J
    dengao 发表于 2019-3-22 16:57
    ( e$ w6 o' M" ]8 h我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 4 l3 [6 |8 S1 n( s+ q' _
    AttributeError: module ‘mdict ...

    1 r: W: K9 h& v$ a- ?运行:flask run3 ~/ R' }# r' j1 E1 I2 f; ~
    试试
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-22 21:26:58 | 显示全部楼层
    + }) ]" ~1 _8 E3 e, M. g" i8 q
    这个版本有点问题,我已经更新,请重新下载,链接不变: b1 E5 d3 M0 M( H1 E! y* ^! ~4 w
    + s+ a; F7 K) X

    ( {% p& o  U5 ?: w" b. L% u* g" 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 编辑
    & V9 O, p- ?# J8 j
    Budha 发表于 2019-3-23 09:45
    ! w" b, [) C  Z7 r' O# B' x楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    , U2 C6 j, A( L' m  L5 y' W- a
    http://127.0.0.1:5000 只能用本机访问! }4 m% L) k( Q5 a* J: D
    6 L+ ]' E3 _5 z/ Z- S9 x+ t
    如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/
    0 G0 x# V, B3 Z% u4 P: H( P8 `改为
    5 i7 b0 P. q* f: C. M
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

    / z# N/ s% N4 Q) W' i  w1 W
  • 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 编辑
    ' G7 [( a5 C5 n! Z. i
    Budha 发表于 2019-3-23 14:446 a( U2 E: G8 D  l& b! K" {
    我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...
    $ l3 l5 r; C: E1 P+ z
    如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.01 X: _5 U% m/ N9 y6 z. K$ g

    " U  q( l* Q6 A4 V' D如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径
    ' s/ \+ _  j$ z7 n
    ' ]/ G8 j0 n5 J" l9 Q查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/# j9 m; W. @# `
    请重新下载 mdict 源码文件,刚修复一个界面问题。
    7 M1 L! e5 M. x; v' V" X' A: n9 D' s( B
  • 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 编辑 . O; R& B- X- n* {/ q/ p$ B* U9 v
    Budha 发表于 2019-3-23 17:246 b6 j5 D! x% ^
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    0 H+ ]1 \+ S9 E; N; K* ~- n1 C" K
    这个和程序没关系,关键在于你能不能远程访问家里的电脑& |+ z6 ~& Z9 i; ?9 a

    * x% }2 V4 ]. T" Y. s/ d! n
    3 g5 M; f. J: r# f1 A- r3 l- W在Ubuntu上简单试用了一下,很不错。6 `6 x! C) b6 f* ?
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑 ' u! J0 Z/ r0 `. f8 K
    1 B: p6 B3 w8 s) c; b4 |& }0 p$ J: F; r
    词典code一定要规范,是不是做到xhtml标准的那种程度?  [# f& d, ]% N, M
    还有就是,可不可以做成直接支持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
    + r) i2 z8 K$ |! ]$ }  v词典code一定要规范,是不是做到xhtml标准的那种程度?0 C& `3 V( e  ?  Q/ }
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

    ( S7 S' m2 a5 ~5 y" x词典code一定要规范,是不是做到xhtml标准的那种程度?3 X" f3 X4 R  a( l8 y
    确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。/ U6 D+ ~7 V/ a+ P2 Z

    " |- T, b6 ~1 Ptxt源码没做过,不清楚,但理论上可以,但可能会牺牲通用性。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
    # C& S6 x3 |% m- Y8 T3 `$ d  g词典code一定要规范,是不是做到xhtml标准的那种程度?
      B( g" E0 Z5 O% t: ~9 L+ x5 c2 t确切的说,是的。因为词典code是 HTML 代码,各大 ...
    ' }! |* T+ [" i. g7 L5 K  H9 v5 u% c" b5 J
    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:529 G$ i; o, m. |$ C" B' r
    可以办到,但主要功能不是我提供的8 v9 e$ K( d# N+ b
    # d; j9 N( h+ z, ?0 g
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    , l2 T' j8 j4 |; l% ~7 l  e2 F+ K
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情况,这样设置的话是不是要简单点?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:09:59 | 显示全部楼层
    Budha 发表于 2019-3-24 07:378 ^& `; ?1 c- K
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    8 n, t: v$ V9 H) {
    7 e+ a! W  A4 \& N( {
    是简单些,但是会危险些3 B' D" j0 `" a( Y8 y+ O

    / n6 h$ n) n# Z( j* ?简单:
    ; ^$ r, B, J+ H0 @3 K) R直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射; V6 b: _, _2 _! t1 M

    - k  |/ Q( d; ^# T危险:4 j1 y, G7 P3 |
    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
    8 y( t' H5 A1 p" r2 rmdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    1 {) D4 u1 L: o2 `1 ^& P. t
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。
    " V1 S: a( _, ~* B( `- e
    3 P5 O8 j% @; f7 Q这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    " m9 D+ _& U2 D: y0 C静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递$ e: ]- Y7 v/ U$ {  {2 t1 O

    " @1 U1 v! q. j3 S, h5 J显然第二种方法更有效率,用户体验更好。
    * k2 c- @* ?5 \# |9 f9 c* U
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:096 z4 f5 C) |+ ?  v7 D
    是简单些,但是会危险些
    + O7 y! Z% L& c% J+ ?) w1 B# ~# U# L0 w- z( b$ \
    简单:

    8 |& l2 i9 E3 q" r) q2 I4 e3 `我看了下一共有5个地址  d& ~5 n5 O* W; ]# C1 |
    1.物理(mac)地址' m' u, O. u0 ^* Q7 G+ x
    2.ipv4地址
    , f& A" q! V0 {6 o3.ipv6地址+ h5 D4 ~! E# G0 S8 _$ J
    4.默认网关4 m6 K# U/ A( ]8 c- y
    5.dns服务器2 B% x; W7 Q7 v' u) f* e( o
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16
    7 q+ T' W/ b  e; I* @& h* u我看了下一共有5个地址
    8 M) U' F) m6 f8 ?1.物理(mac)地址6 |" B  G- l* o/ V. ~$ e# S
    2.ipv4地址
    $ A) J; @$ N7 j- W
    2.ipv4地址
    + u! ~* U" o0 h  v* r% ^5 {3 S
    & U5 P$ @/ ^  H1 mipv4: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:28 , Processed in 0.121706 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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