掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5677|回复: 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- z3 L5 Z% d7 V0 f
    楼主呀,ubuntu的详细安装教程能不能发个呀?
    * O' X4 T5 {: k
    # Q. @+ g" a7 C9 {
    ubuntu 更简单,方法更多:
    + P. m( o; A$ j4 U
    $ |' R9 x* M# u1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
    , L8 i! Z8 f1 y% W5 S+ G2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip
    # ]! `/ _. n/ P( X0 @& `3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    3 d# c; o( U8 C1 r
    3 Y! Q/ K5 L1 v$ U9 A6 r) V4. 安装依赖包,pip3 install -r requirements.txt1 e( h6 y  h! x# _" {
    5.建立 content 目录, mkdir content
    1 ~2 T! @4 C. ]1 E' H7 }! @3 G: `; V
    6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    ! }" y+ u8 H- q, q6 O# ~
    5 O7 ^# i+ H+ \' m- ~9 C: i7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响
    9 b( T5 P& p% [. R) m8 A( ]
    ! S- ^9 B) j" K1 e( \+ S& S8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...2 h8 f# x3 r5 U! {0 h" V+ P7 _
    9. 运行 flask run
    8 c$ ^0 \* Q- M" k; b5 B10. 浏览器访问 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# c4 Y+ s0 U3 G* s
    Budha 发表于 2019-3-23 17:24/ j8 B( L0 x8 `# l+ Z
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    , b  P: j; I- l" W! D可以办到,但主要功能不是我提供的
    ( ~' e: {& W) l9 k
    ! y% t& G- i! P7 e+ [7 U1. 首先,运行我的程序,家里内网的机器可以正常访问( _# R: Z0 H4 u$ z
    2. 在家里 AP 路由上做地址转换( c* O9 y# {' n
        例如,映射外部端口 5000,到家里内网  <pc_ip>:50001 }& ]. L' O2 r9 K

    ) {: U  s" y$ W0 R3 [8 r! _5 a注意:; x# n7 ~# H) e
       1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以3 a' F, k9 {9 r' c5 E  ^
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决% C/ ^$ W( \0 K7 H
       3. 映射的外网端口不能是 80,或 443 ,ISP 禁止& ?0 L; p$ F  i0 ]+ p5 p# a
    , K: s+ [. Q' |. {& ~6 v) ], U
    总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。
    2 f! J2 g3 q/ g. r- a# x
    6 f+ w: A0 ^1 N6 A
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    0 ^6 k9 D) h- vAttributeError: module ‘mdict’ has no attribute 'init_app'1 K0 h8 E2 V* [( s' B1 o
    不能正常访问网页
  • 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 编辑
    5 Y2 ]2 J  `# p
    dengao 发表于 2019-3-22 16:57
      j5 V% B+ M0 G8 e* u. L/ W我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 2 d: V8 R% s- c0 r2 L: k; `, |
    AttributeError: module ‘mdict ...

    : V. f9 m" e8 k9 B) N, Z运行:flask run8 d; ~! v# M2 y* d6 O* z
    试试
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-22 21:26:58 | 显示全部楼层
    / o1 k& i: L9 M+ u+ b6 x  _! E
    这个版本有点问题,我已经更新,请重新下载,链接不变6 M' x0 Q3 I2 Z- R
    ( S0 E+ _/ q: ~9 S

    + p/ Y8 m' f# w0 u: D& P- L; d  s; j! q+ ?7 w  \
  • 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 编辑
    ' P8 x2 C+ z+ |, Y
    Budha 发表于 2019-3-23 09:45) o' \" @' L3 F7 X
    楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    5 V% X( ], b# e$ o$ `0 ~9 m- N5 l: m
    http://127.0.0.1:5000 只能用本机访问
    0 b. v1 z; S6 U$ _+ w; `7 u* d! Z% b
    如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/9 H: t& |+ D4 E& u
    改为
    2 _, Z' m7 c1 Y. s4 Z9 u5 t
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

      N6 O: W! `8 j: M
  • 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 编辑
    0 p, X# g5 U" F2 r& d
    Budha 发表于 2019-3-23 14:44
    # H% O2 t' E' T& J! j8 n& ]% U我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...

    8 ?( f& s' z1 R" D* w如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0& M- e7 f, C  c' u9 e8 ]

    + |0 K- m$ h8 I2 x  \) _: l5 K如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径
    , T$ R, Y8 P! ?" Y8 G% q5 b! G. B
    / P9 D- w' }. U1 C, D( N# g查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/0 b3 ^3 d" B; e# U& r
    请重新下载 mdict 源码文件,刚修复一个界面问题。( h: s. D$ Q( P% @; j
  • 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 编辑 ( x. k5 s; a6 Q; t2 ~
    Budha 发表于 2019-3-23 17:24) _9 O$ I+ x% a( T$ B! H7 p) L
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    9 c: Z; u4 w4 q) }  J这个和程序没关系,关键在于你能不能远程访问家里的电脑& e( h4 t0 y! w, [+ Y
    : ]7 S) f& S4 z3 M9 q4 J

    6 I+ E0 Q# I: I! t: q* _, C1 J$ b8 W在Ubuntu上简单试用了一下,很不错。+ B0 d+ C# v# @7 ^% Z) S
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    $ }: ?* c( G+ L% y" B$ T
    ) P  k- Z8 f; ^+ t. _1 y1 p词典code一定要规范,是不是做到xhtml标准的那种程度?$ j- w8 g8 q. P, D8 W8 g
    还有就是,可不可以做成直接支持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:320 x$ J+ F% B7 M  V* M: R
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    0 Q0 v* R  N$ X还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

    , B- }% m8 P& C1 @' W$ c7 v词典code一定要规范,是不是做到xhtml标准的那种程度?3 w  |4 t, ?- R7 J6 {& {5 I
    确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。
    * U3 a6 g5 a& E$ v9 z( v, S8 f4 t1 w
      ~6 U$ V6 l' f- I3 M0 Itxt源码没做过,不清楚,但理论上可以,但可能会牺牲通用性。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
    5 W- j8 U: N% W6 s词典code一定要规范,是不是做到xhtml标准的那种程度?; p- v# @/ ]- o
    确切的说,是的。因为词典code是 HTML 代码,各大 ...

    " P  c- z6 k' J* k. f9 ]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
    , X: V# q: W7 B4 n" u可以办到,但主要功能不是我提供的
    7 O: I1 b4 j) A+ p* `, a9 I; g* D9 c* u
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    / n7 a4 c/ i- t7 ]) G: j! a/ o9 M* D
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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# d1 s+ s; U7 p5 {- j
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    : T9 W* d- p) X# D/ b' I% `

    : |# @9 O7 K1 b/ M  Q是简单些,但是会危险些
    7 J+ n% d7 S3 @4 @7 D% `! c9 {: d' X, a; l
    简单:
    9 I8 f( y' I! @9 m直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射
    , x5 n# f2 {/ Z8 m$ ]" H4 M4 h$ g3 r' F: B
    危险:, _/ |$ a- s7 G- Y7 m
    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+ A# e' C+ R! J/ K5 J4 o8 y" h
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    - e' W: X! V' J# \
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。- g9 ~, B7 r7 [" u
    2 @. X' `/ H6 E  ~$ @3 A* H! X% U
    这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示$ K- A! B, c- c4 Z! r
    静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递; l. y) {. U) Y
    4 \8 P6 n. }- b+ {( f7 H! Y( w
    显然第二种方法更有效率,用户体验更好。
    $ v0 V- y  G; K/ h) P0 r( ]% U
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09
    8 m$ G7 Z9 i  S; s  Z是简单些,但是会危险些8 J/ L6 S( {9 j; d( Q% l3 C2 {

    # b) f$ \$ ~) ]. A( B简单:

    : P9 |. l( q) x我看了下一共有5个地址4 E# F5 x% B7 c9 V! W. V
    1.物理(mac)地址' P- ]/ h% ]  ]5 D8 |& `
    2.ipv4地址
    ' u- l# }9 a7 u5 T3.ipv6地址
    ) C, N7 }; v, ]4.默认网关
    ( T  I2 ?# a" o4 m$ v" k5.dns服务器8 o/ ]$ M/ I# s* S8 R
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16, @/ ?% Y3 @9 B/ }: T
    我看了下一共有5个地址
    9 R8 Q# L( {! _" p+ ?! B1.物理(mac)地址
    9 }" l8 |- S% _# h- y2.ipv4地址
    3 @. Q4 A1 G7 X' H
    2.ipv4地址
    7 a, g* w- [( y. A. y
    1 [; n* U; o; {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-27 17:08 , Processed in 0.147341 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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