掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5631|回复: 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:342 O' }" M+ R$ \$ U! J
    楼主呀,ubuntu的详细安装教程能不能发个呀?
    8 p. f2 J  Y9 E- r

    $ a6 l: I6 @& ^2 h* Hubuntu 更简单,方法更多:4 Z. u2 N2 T# A! i% S: p

    : W( A" s$ ~7 h; p9 v1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget3 x9 g7 x3 F4 f. V
    2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip 2 ^8 {0 f  Z( S: a+ Z
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以. l% |5 V( @+ F; f

    & V9 k) M6 }2 s7 N7 M6 G4. 安装依赖包,pip3 install -r requirements.txt
    5 ]1 I5 T. ~" l9 L2 B- ^* M5 }5.建立 content 目录, mkdir content
    1 V( w- Y2 u5 {  D
    % U+ t" h# N/ d4 R) ^: N& E6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv! w% N$ y% C- U$ ~6 G6 a3 e% `

    ! i+ C6 ]; v+ R7 h9 m) G& _' ]% y' C7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响! Y$ F7 a" M8 A3 K) l1 e
    2 v0 V. k. \; |6 c: }6 Q# X
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典..." h- `% F9 ^/ ~$ d
    9. 运行 flask run3 |. l$ R/ g( G8 e. l! T4 Y
    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 @  F  O0 |* N! y
    Budha 发表于 2019-3-23 17:24
    2 E8 f1 H8 \5 q8 a  `. k; u0 C我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    * q* [, n- G4 I, u9 s8 q
    可以办到,但主要功能不是我提供的2 M! w$ W3 y  ~/ x* [
    $ c! i! `; t5 ]( z6 b: T
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    + w! l! i" k) g  I2. 在家里 AP 路由上做地址转换
    5 e# X& m" i# S    例如,映射外部端口 5000,到家里内网  <pc_ip>:5000  @! b+ m/ r/ G: d

    1 y! O  P/ v+ T- e- O1 V5 S4 K# _注意:
    2 O- T3 u: g3 s) N/ P4 S4 G3 z   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以3 u' R! M* E: c% ], x* T# [" m, S0 |# [
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决
    ! N' d) p6 c3 Q   3. 映射的外网端口不能是 80,或 443 ,ISP 禁止
    + F( K) m& z) u6 n1 D7 b8 N! |- \& D6 [9 `
    总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。# ^- B' P" v1 N8 u* x% M* V

    5 @5 T4 S/ C( q
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    - s. j% ~; m- lAttributeError: module ‘mdict’ has no attribute 'init_app'
    % U; ]; C$ A$ s$ J& }不能正常访问网页
  • 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 编辑 & q4 c9 h7 O1 ?
    dengao 发表于 2019-3-22 16:57! f* b/ }; c- C2 n+ h  l; {
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    " O( r/ G5 s; T9 zAttributeError: module ‘mdict ...
    5 [! U- j# [' Y; L) N6 {: m
    运行:flask run
    . m  e: Z" }/ ~/ j9 A# @试试
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-22 21:26:58 | 显示全部楼层
    - c$ ?# F9 m  Z, z2 ~
    这个版本有点问题,我已经更新,请重新下载,链接不变2 V3 Q$ ^! ^) ]
    : l% X7 L( w! T+ C7 O4 \( D

    % ?  ]. y, P3 k, s& b) ~) i: c, P6 V- U2 J% |
  • 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 编辑 8 k( q3 a3 e' V' u2 z" q
    Budha 发表于 2019-3-23 09:45* ]  _! ]& R+ D+ {* l5 x
    楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...

    0 v9 P& z8 e; q5 |, Thttp://127.0.0.1:5000 只能用本机访问
    1 x1 c1 d/ D9 X' d1 h! c: G
    - p0 }, U; e1 W& P$ h如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/+ j* \+ A1 p9 P& N6 K+ v
    改为
    ! N1 h4 G" @  m5 i8 W
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

    8 m3 r( e6 ^: s' B4 {2 u
  • 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 编辑
    7 a' F8 ^% c, G5 S! a7 U. D% Y
    Budha 发表于 2019-3-23 14:44
    . O5 V+ E1 \* Q/ U2 A我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...
    5 N0 Y% O3 j1 x
    如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0* h! Q$ W6 w' r' @6 t  l8 C
    / D$ g/ M( k9 y, W; t- |
    如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径' w% ^% k  |5 ^9 ]: t3 s2 Q' g4 {

    % Q0 p- E" X6 p! l: f; d查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/+ O2 S( W; D) n4 V1 x& y5 s
    请重新下载 mdict 源码文件,刚修复一个界面问题。0 u; a8 M- u- ^( f( L
  • 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 编辑
    0 A2 U  S' `( F, y, L: p& \
    Budha 发表于 2019-3-23 17:24, }5 Q, @: K, f' w$ z* ?
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    + C; y" a* m1 v/ r
    这个和程序没关系,关键在于你能不能远程访问家里的电脑
    9 K/ L2 k3 x( g; k* V% H" a& {6 G. M& F. p0 S

    % t% t* k2 i# q- p' D9 n在Ubuntu上简单试用了一下,很不错。
      Q4 p/ Q( o, ^3 F
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    / ~% J8 S1 R5 o. J" F; Z+ d
    2 F$ u' b9 h+ O词典code一定要规范,是不是做到xhtml标准的那种程度?
    5 t' w- ~4 ?# ?) Q7 g  X还有就是,可不可以做成直接支持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:324 O: l+ I# g3 y8 U: }, \
    词典code一定要规范,是不是做到xhtml标准的那种程度?9 y+ D" \: a; `7 Y  H
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

    1 j% k5 a3 z1 s# a( h词典code一定要规范,是不是做到xhtml标准的那种程度?( P* V$ Y( a& w& W3 L
    确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。+ f" r# @1 S& O! L) D- [6 O" I* \

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

    [LV.7]常住居民III

    发表于 2019-3-24 05:48:07 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 05:294 D$ y; l7 s# D' P) @0 e7 f0 N
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    & q+ P+ f% ?( k' J2 z8 j6 ]确切的说,是的。因为词典code是 HTML 代码,各大 ...

    % @$ T; l. v5 u6 H: u8 kmdx源码的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+ Q  k- h& j2 J- L
    可以办到,但主要功能不是我提供的6 i$ M4 N' W# W6 s

    : V1 V5 |+ N; D& y% m- X1. 首先,运行我的程序,家里内网的机器可以正常访问

    - q! X+ V* ?! W6 c谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情况,这样设置的话是不是要简单点?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:09:59 | 显示全部楼层
    Budha 发表于 2019-3-24 07:375 Y; O9 M# P+ s& d5 U
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    9 V: G1 a4 |7 T6 V) b* k4 s

    0 F$ X) ^, g4 n+ S6 {* N( j9 D- {. }是简单些,但是会危险些& w7 Q9 g' J) ^7 w: L7 I/ W
    ' z# G3 \% N2 \7 _( x8 G
    简单:3 w8 }% {, R- Y2 M; T9 s* A6 _
    直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射2 ~/ @, i: ]+ Z. ~& E  H

    , Z% i9 N: g' ?8 Z危险:2 E3 s5 P& l* L1 z
    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
    ' }  D9 S  u5 `, `mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...

    ) S8 W+ h1 V/ y是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。
      \# F1 C9 K) L- h. C8 w+ g/ E
    7 l. t# p, A9 V+ Q/ S5 A* q* {这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示" M" g9 b% g! u9 @
    静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    6 R2 K% _. X* M* H8 |' {  y& ?4 m8 o! g( C: K5 B
    显然第二种方法更有效率,用户体验更好。
    3 f; F! k9 q8 m0 f5 V0 U: o
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09! K" T6 b: j( N) A' g
    是简单些,但是会危险些9 T, G( y0 q" n  V
    / q( O/ U% e! j- g; j# }1 H$ ~3 W
    简单:
    9 b  ~) r. x- b- o
    我看了下一共有5个地址& B  M/ G' @; Q: D2 H
    1.物理(mac)地址% y  a$ c. ^2 l0 \
    2.ipv4地址( v# b: G1 P8 u! j1 i3 c3 q& y6 C
    3.ipv6地址6 h1 I% K1 l2 q  t
    4.默认网关" R) F( W: l& A6 x0 p3 K( ~
    5.dns服务器) M$ N5 a7 T3 L) F: q
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16+ u6 [3 u4 {* y- D- y
    我看了下一共有5个地址, a* |# S# Y. U
    1.物理(mac)地址
    0 c9 o% O3 f( G$ H$ Z. }# J8 T) E2.ipv4地址

    ! Y5 K3 d: t  p6 w2.ipv4地址
    * n1 G3 o- n& X* k: K( i$ X1 N0 }% D5 q
    ipv4:5000
  • TA的每日心情
    开心
    2021-4-11 18:44
  • 签到天数: 88 天

    [LV.6]常住居民II

    发表于 2019-6-22 23:07:37 | 显示全部楼层
    这么巧? 昨天顺手自己写了一个django版的。哈哈。仅仅支持txt,每次查询都动态生成转成html条目。就不发表了。
  • TA的每日心情
    开心
    6 天前
  • 签到天数: 679 天

    [LV.9]以坛为家II

    发表于 2020-12-2 15:29:41 | 显示全部楼层
    谢谢,下来看看!
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2024-4-19 20:59 , Processed in 0.109012 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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