掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5684|回复: 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 A, h5 N  I4 `1 g) H" W楼主呀,ubuntu的详细安装教程能不能发个呀?
    1 x1 N3 d8 ^1 P4 g: H

    * t3 k: s1 L' D$ r; v" V) xubuntu 更简单,方法更多:4 k  _# `* g6 P+ k
    : j% M7 U9 L7 n! }" ], j4 @
    1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget4 o( `+ d$ `- u1 w
    2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip
    7 h6 {! |% z! J; s7 ?4 }: P3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以: M6 m. [4 @/ T

    - e4 j5 R9 e; ?" j: J0 z4. 安装依赖包,pip3 install -r requirements.txt/ p" ?4 v8 T7 G
    5.建立 content 目录, mkdir content; q( b/ q6 s; J

    ' m: A4 O/ z6 n6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv  K5 G5 l$ C* D6 R  R1 q

    $ q% {1 X3 D/ i' \  e7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响! h( \* G8 X% J4 i3 b) U8 m

    / x+ U- M) q& J' |+ t8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...6 o/ e0 p9 B7 L. Z! u1 x" C
    9. 运行 flask run
    / p( K4 }$ ~% i10. 浏览器访问 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 编辑
    6 t1 D1 P( Y/ l* f, T/ d% W( d- a
    Budha 发表于 2019-3-23 17:24
    * j8 S5 \* v; s, i我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    ; @6 P( }- s2 S# j( i" b
    可以办到,但主要功能不是我提供的
    + D# c( r9 X+ e& Q8 E9 P5 W( c' M5 _8 N3 W5 j
    1. 首先,运行我的程序,家里内网的机器可以正常访问1 A6 ]( ^6 {( Z: a
    2. 在家里 AP 路由上做地址转换
    " S6 i0 A8 U3 B  k9 {# ~, }, i    例如,映射外部端口 5000,到家里内网  <pc_ip>:5000
    ; W# c. a6 E3 ?+ i2 W4 Z- T* D" h) a' R9 s& Y9 h2 I/ e
    注意:5 S/ {8 k* `% S7 {" h% b3 Q: B
       1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以0 r3 d4 a8 ~3 S7 P
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决  e8 D2 a9 h$ Y' T( a
       3. 映射的外网端口不能是 80,或 443 ,ISP 禁止) X7 t# M& x+ j$ D* F! A1 d# M
    2 c9 \. ^9 r6 n
    总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。
    4 L4 S; I0 j% v
    , L" k+ E; K2 n$ b4 R9 S5 S
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    2 @9 V* a8 p1 IAttributeError: module ‘mdict’ has no attribute 'init_app'/ P; T2 r& z/ S4 |/ k& V( L, 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 编辑
    $ g5 O1 F! d; i* ?# O+ L
    dengao 发表于 2019-3-22 16:57
    & ^. D: S! D& H; a我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 $ d) t0 s/ [" S( [/ r' ^
    AttributeError: module ‘mdict ...

    : q9 a! s4 ^4 X9 m运行:flask run
    3 N2 \' e5 C2 m) A4 A" M1 j4 W试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    0 |! \0 f* }1 i/ F/ u1 A3 r这个版本有点问题,我已经更新,请重新下载,链接不变# [6 f3 M% P' G) ~; ?- h
    4 g! H# `% I; y: C, l' z, B
    ' v$ }% t' K4 I- L, q8 k/ z! d& ~

    + x8 C7 ?1 F* p
  • 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 编辑
    ( p. v, z$ J( s2 M* I& F) q" H: g
    Budha 发表于 2019-3-23 09:45
    7 o, S$ {9 I& V+ T9 z9 O+ J' W楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    4 k! N4 V, o$ m8 m
    http://127.0.0.1:5000 只能用本机访问/ K1 z7 \: y2 y: C  u$ M2 g1 I4 ?

    ( J, ?; }6 h; C# @' e; E' p! y如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/1 k; z- C. ^1 ?/ E. F! r. K4 Z7 b
    改为  w! ^7 R5 S+ b" M8 x  x
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

    2 ^# k7 k8 m1 a) ^
  • 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 编辑 + Q. ?8 v6 y7 ~0 q# z0 M
    Budha 发表于 2019-3-23 14:449 e5 j$ k  w7 N' }6 l
    我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...
    9 M; {8 c4 n  t0 H  W5 E7 B, t
    如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.09 K  V6 g1 \) e, c* f

    & S% ]- V" [# P* @# a7 y如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径: {5 W  `- {5 n

    3 H6 w9 [* `( M' X* e0 f& ^/ y查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/( i5 a2 Y  x( m; H3 e+ j- |% {
    请重新下载 mdict 源码文件,刚修复一个界面问题。2 o6 ^# l- J" S: d: }9 a& w" z8 _/ [
  • 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 编辑
    - s4 h7 j) Z/ t* U( B, _
    Budha 发表于 2019-3-23 17:24
    ' ~( \$ M* [7 h( u! U1 P! t5 E我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    2 t5 ~. f, g+ j! _2 U1 }
    这个和程序没关系,关键在于你能不能远程访问家里的电脑
    - q  Y+ w4 H" W) `" E
    8 O2 @  O$ x) t" J" V' B% U- t
    " g: [- D5 |6 C$ e) \$ u在Ubuntu上简单试用了一下,很不错。$ ^6 c- Q+ w+ ~) C$ t
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑 " @. ~$ _* Y  Y, H

    - I7 g0 G% @% |! L( o/ n9 y; F词典code一定要规范,是不是做到xhtml标准的那种程度?
    . n% w2 u" }; `+ y( }还有就是,可不可以做成直接支持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:328 ^; @4 k6 z1 p  s7 R3 D; v
    词典code一定要规范,是不是做到xhtml标准的那种程度?. ^5 Q% d4 J3 k, H7 C" M
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...
    . @0 D3 L  _/ e2 k' r
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    % b, r' s# J" T2 F: H$ C: h2 [确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。0 n6 w( a  H5 B/ O8 F6 x( v

    6 [# S9 W5 W/ q8 V- o3 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
    / F$ s: h4 T2 Z! K词典code一定要规范,是不是做到xhtml标准的那种程度?
    5 S" V% N  O! W, k9 B, ?确切的说,是的。因为词典code是 HTML 代码,各大 ...

    ! d8 {% F1 v6 {+ r5 R) d0 imdx源码的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
    " e6 B6 H0 V  `4 H3 X8 t+ D可以办到,但主要功能不是我提供的* X. h3 Y3 ?4 |8 g. J/ K

    : ?+ |3 o1 |. j; `1. 首先,运行我的程序,家里内网的机器可以正常访问

    2 u: B: b: }" z  ?5 s谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情况,这样设置的话是不是要简单点?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:09:59 | 显示全部楼层
    Budha 发表于 2019-3-24 07:376 s; l+ W- S5 F
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    7 _& A1 _- c- j+ S/ g5 ?

    , n/ E3 U9 i5 V% M% ^) r1 e& i是简单些,但是会危险些! E+ b+ f$ @$ j" ~3 @! z

    , E! t+ T$ r2 Z! A, V简单:
    6 |7 o3 N. U/ n" v直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射2 a8 p) A; T* b- F* U( u6 g
    , ^' ?- M% N; P8 i
    危险:7 J4 x; B. u4 b. \# y, E: Z# t4 E
    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
    % K: J9 D7 v+ U/ umdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...

    1 o9 y" G, T  j% D& @是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。1 [/ f, {+ k1 Y/ m

    + G% h$ Q* P+ l" ^这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示3 Y" C, B( ^2 a! h8 p
    静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    3 e# \7 Q% o' t6 G. w* f8 a' V% x% z3 i* g9 C9 ^8 V; x; W
    显然第二种方法更有效率,用户体验更好。( v8 L+ v  ?5 C6 Q0 ?
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:098 I2 \, A$ |9 @0 K
    是简单些,但是会危险些
    " a( H1 t7 t' X; O( ^% p
    6 O5 }4 @/ m/ S* c: F简单:

      F, x9 d$ s( T+ v我看了下一共有5个地址
    3 I1 x! }! I8 O5 ]" E' V) ]1.物理(mac)地址" X0 `5 O6 E% J) s7 ?# Q( Q# l/ C2 A
    2.ipv4地址
    , v- Z# X2 l" H- J" Q8 g3.ipv6地址
    6 O! z' h: F5 ?# `4.默认网关
    # s8 ~/ s4 ^( w0 P+ Z5 A( c5 c2 A! Q5.dns服务器
    ) a  C- p, J, k; B+ D我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16
    " d/ \5 s9 B  t2 T! q我看了下一共有5个地址% H/ M; n1 E  u) y% d
    1.物理(mac)地址5 {* V3 }7 H) m* b0 {+ G4 C
    2.ipv4地址

    9 H. G& i# \: o# Z2.ipv4地址/ z, P+ E+ X* G8 `& U  P

    / x: g5 P4 M2 [$ x' Eipv4: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 20:06 , Processed in 0.154895 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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