掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5650|回复: 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:347 g& `5 f* W' g/ V7 b: M
    楼主呀,ubuntu的详细安装教程能不能发个呀?

    : w2 {2 C2 V7 U4 q! Q1 k
    5 T0 s; v4 P/ |) H9 yubuntu 更简单,方法更多:# p& l1 _  ?7 T5 }) s' I4 {
    9 V- _, E; w# p2 c
    1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget- ~9 i% x: J# ?) `! i$ `; |$ b* K0 \
    2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip
    : k  _& s6 x% ^# \  E5 ]6 k) A3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以7 X6 {2 W2 k1 I- U2 b

    % i5 [* ?& T7 S- t: m4. 安装依赖包,pip3 install -r requirements.txt  U. A5 N, e/ L! S
    5.建立 content 目录, mkdir content3 A5 ^/ ^& H& K

    9 e; f' b3 _# C+ a. `5 _; ~6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    ! N- {: t/ Y6 A" G4 T2 c& z% m, Y, @$ I: P; R" P: M! e
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响
    ) _! t9 K$ t1 s  I: r8 s1 x- i! _- x
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...
    - K  u( O& m/ O$ ^; W/ f9. 运行 flask run
    $ M. J' ]0 @, B+ 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 编辑
    + s: {5 `: x  L* V
    Budha 发表于 2019-3-23 17:24
    " G6 M4 l* v7 `我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    ! e* |" V" j2 P8 V( K/ Y% R$ ^可以办到,但主要功能不是我提供的
    6 W$ i# \6 J# x/ y+ h0 t5 |4 s" ]. f$ N
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    . E& g3 D( U: ?0 f2. 在家里 AP 路由上做地址转换
    ( g7 s3 _. I. ?) i! T    例如,映射外部端口 5000,到家里内网  <pc_ip>:5000# k$ A4 R5 e  S  O
    " _7 t" N% L# P& a2 z) @' R
    注意:
    ) R( m( k6 o9 H1 A6 v( e   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以. n$ v. R. k. n2 A
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决
    2 _( F1 K" I& b: v   3. 映射的外网端口不能是 80,或 443 ,ISP 禁止
    7 }" ]% _! U, c7 j+ {
    8 r$ y/ ?3 j6 |0 p9 G! A+ z总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。; T! G0 `+ i8 f& \( q; A2 d( F1 X0 J

    8 {/ f' Z* e% @# ~, S/ U
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 & ]" ~/ L: u6 c7 I; Z5 e
    AttributeError: module ‘mdict’ has no attribute 'init_app'% @  N! g+ P6 E$ B6 S; p8 `- i* L
    不能正常访问网页
  • 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 编辑 - m5 Q, G' |' ~1 l' M4 B% q. D
    dengao 发表于 2019-3-22 16:577 o6 g7 _- a, n8 ]9 f
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 9 W$ M+ N* L# M% h
    AttributeError: module ‘mdict ...

    6 B% `5 j$ f: _) S运行:flask run
    7 r6 o$ m; D8 C3 h) A试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    " H1 v" M* M7 i) P, @* q这个版本有点问题,我已经更新,请重新下载,链接不变/ z! `: ]& i3 }$ J) m
    5 u0 \7 \! l8 e/ h: Q/ }1 B

    * S" ?. H" ]# D! u7 z) d3 v- r2 U  ~$ ]+ S1 K" Q, 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 编辑 : F# G' Q' a! C% h( z- W: ~( d% Y
    Budha 发表于 2019-3-23 09:458 q; `& y3 M/ k, g* j
    楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...

    3 r1 ]; m9 v* C9 I: @' Z( khttp://127.0.0.1:5000 只能用本机访问7 T( a9 a, N. v

    0 a3 M/ h" O% X& q# e7 y/ N如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/
    6 z% G. g; h0 L: V改为
    5 }# b: k( F! u2 z- c4 g9 j
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码
    1 d# f! a: D2 w% V
  • 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 编辑
    2 G+ U) S3 d) l/ M1 F& A/ o2 l
    Budha 发表于 2019-3-23 14:44* k  W, o& J7 c% o+ t: W
    我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...
    4 f# l# x+ m% V# T. R
    如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0
    " `/ j" u5 U$ H1 v1 \
    + y6 |# f/ f( g* d6 A如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径5 P* t2 P  r6 T5 h
    / L1 j# {8 e" Z4 B! b1 B3 O  j
    查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/- g" ?- O/ N: e" ]! r- S0 L
    请重新下载 mdict 源码文件,刚修复一个界面问题。
    , m+ i% p4 m6 L  a% g/ ]
  • 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 编辑
    / ?+ J) b' T0 X; Q9 k
    Budha 发表于 2019-3-23 17:244 N3 e' u" x4 L. `
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    ; J$ d2 e. J5 ~这个和程序没关系,关键在于你能不能远程访问家里的电脑" p9 o2 o' b  n. b7 ^  D

    7 g+ A2 u! z+ i2 P- S& G8 ?5 o) s/ t" @
      F  l" t& _0 ~+ H, w& F( d在Ubuntu上简单试用了一下,很不错。
    : ~, {% s1 n8 n4 g! v4 }( v
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑 ( A( m6 q" k! H0 ^  T. A2 p9 Y
    . g7 o: I" Q# p3 b' ~5 a
    词典code一定要规范,是不是做到xhtml标准的那种程度?" R% }3 b8 Y: d- g' ~3 _- ]2 ^
    还有就是,可不可以做成直接支持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
    5 E$ f: X7 v3 U; p) \" {词典code一定要规范,是不是做到xhtml标准的那种程度?+ ~4 u. _) H* ]7 H, [4 A
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

      \- `7 }, |3 {( r& d% Y词典code一定要规范,是不是做到xhtml标准的那种程度?& M- z- T8 F& y& e3 b  d
    确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。/ g# p9 [& q3 N- F2 [

    + ^, r) n, r1 R% h7 C  e$ \1 ctxt源码没做过,不清楚,但理论上可以,但可能会牺牲通用性。HTML 软件原生支持,TXT 格式千变万化,没有统一标准,支持性就差了
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-24 05:48:07 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 05:296 T( t; b" h  k  w3 F; i% @
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    ( L1 d- H' R! f! K/ X确切的说,是的。因为词典code是 HTML 代码,各大 ...
    & q& q, U3 |% H+ U4 F1 Z* y# G
    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
    0 K# i. Z* f! m" Z$ T; b7 s2 R可以办到,但主要功能不是我提供的. \5 V) Q" R6 ?7 F" B% Y% l
    3 N9 z/ j! l1 K
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    - [2 u% V# @/ v0 X! M5 \
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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
    1 U1 v6 q6 _1 v6 y9 a6 x$ ?  N谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    3 W  K) g8 [8 j- j" r7 C: J

    % F/ e7 [8 `, [; i" x是简单些,但是会危险些0 L: W+ |% d4 d6 Y
    4 S/ L% d& y" w: u
    简单:
    & p/ Y% h% y3 ], X, L直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射
    $ U2 e1 C, R* D4 M0 U" f; k
    - ]. M$ e; Y) ~3 Z' K) R3 c危险:' D3 d5 ~. h5 F3 t6 Y' X
    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- T5 J# p4 S- e( K8 N7 }
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    ' Y* N% O2 C+ p# d4 W+ n
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。
    7 [( D* j1 O5 U4 S, f, }: t0 w0 t  Y9 x2 w$ ]2 ?
    这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示; d8 J$ h1 _% O- d( u$ a6 M
    静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递* T6 j+ ^) [8 B. N' a' j( l+ c; f

    ( [& B- k4 I3 i显然第二种方法更有效率,用户体验更好。& x$ m5 i; [8 U5 v% a
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09  ~6 A! g, W, n0 h" \
    是简单些,但是会危险些4 j+ ^4 @1 I1 f8 Q) n

    . g* Q, Z9 V! L简单:

    8 N: b1 t$ _1 \  h我看了下一共有5个地址
    " ~6 V7 v* |  H1.物理(mac)地址
    0 M0 }( B0 o( b1 c% Z& ^8 B2.ipv4地址
    & T9 Z  @7 U! Q# h3.ipv6地址1 d& f* K- T/ ^
    4.默认网关1 w0 `5 R; y& A" |  C$ V% R
    5.dns服务器
    * ]- k5 ]1 I" p* \我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16; R5 l; j' G& k0 M1 U4 r
    我看了下一共有5个地址+ X# r" I: Z1 e5 b
    1.物理(mac)地址
    + N1 A2 _0 i% R& P0 o& F* L* B; g6 g2.ipv4地址
    ' x, u" i- O4 l8 L+ f/ @( p. ?7 D
    2.ipv4地址7 p  C( h& Q# g$ Y1 J

    5 n  k* K* }! U: @; K6 gipv4: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-25 02:42 , Processed in 0.134948 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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