掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 7328|回复: 29

[新版发布] flask-mdict 架设自己的 MDict Web Server

[复制链接]
  • TA的每日心情

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

    [LV.7]常住居民III

    发表于 2019-3-22 12:21:41 | 显示全部楼层 |阅读模式
    购买主题 已有 94 人购买  本主题需向作者支付 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# U& V! M1 n0 h" a
    楼主呀,ubuntu的详细安装教程能不能发个呀?
    + W# F2 {. m' f
      K5 ]' \, T* i
    ubuntu 更简单,方法更多:. m/ x7 C1 g5 K( `

    - h8 C1 H$ K  A1 b* s/ G/ p1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
    ' A* F2 f' T1 _& ~; I* @' `& `) k2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip # y( ~  d5 S, w
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
      g1 x+ W$ v: A( B2 b$ \$ z
    , u2 U: o* w2 l/ B: i4. 安装依赖包,pip3 install -r requirements.txt
    9 K2 Q7 w- }3 U$ }5.建立 content 目录, mkdir content
    / Y7 p7 c6 L; K+ {6 g& ^4 [8 Y7 m0 {3 g" s6 |
    6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    9 U9 ]! n  B2 \( [7 Q, S& P1 t, m' k& G+ Z% b% W0 D
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响8 ?* n/ h7 P/ Q2 P
      T; d5 y) C* J( q$ G
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...& c& L9 b0 H1 z0 b( B
    9. 运行 flask run
    " `$ L4 {6 D4 o10. 浏览器访问 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 编辑 " R& z, B# d  v
    Budha 发表于 2019-3-23 17:24
    4 f- k4 K' W% o1 G3 K5 w! w0 a7 s; z我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    : u5 b* Z$ q/ @/ I" G
    可以办到,但主要功能不是我提供的: u9 I- v; Y! \2 b* M
    / d3 P7 b9 c4 x) S% G/ f
    1. 首先,运行我的程序,家里内网的机器可以正常访问- I/ L& {1 S+ @7 B2 I
    2. 在家里 AP 路由上做地址转换
    8 p, u; V! B8 D+ o  q- [0 T    例如,映射外部端口 5000,到家里内网  <pc_ip>:5000
    * Q1 l( Y' b, M( w( J4 _) e$ `+ i
    % U5 C+ f' ~9 j' S# v+ D. }/ C注意:
    ; x6 {4 F, o6 g! G' D   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以
    ) s- B+ A: B! r; A9 z, N% v7 f8 L   2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决6 G) }$ K0 I  r3 v& U8 v' s
       3. 映射的外网端口不能是 80,或 443 ,ISP 禁止
    ) C2 t8 I6 k8 \' {* u; B- R/ }
    ; h3 G# v+ `8 {. T8 X总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。
    3 J/ M: V9 K% S9 ~& b4 n" Z
    " T8 d8 {5 q7 D
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    % w* }) ]; q4 WAttributeError: module ‘mdict’ has no attribute 'init_app'" z) q( `' [! A, p3 I  n
    不能正常访问网页
  • 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 编辑 8 }6 K; l$ Y: C- @
    dengao 发表于 2019-3-22 16:57
    & Y4 ]4 ]$ I4 @& Y9 \4 C我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 ( F$ B% b5 ?) e6 @3 N2 q8 B
    AttributeError: module ‘mdict ...
    & l7 \; k9 G* V) x; J) J9 Z
    运行:flask run1 o: S6 f+ v3 S# |
    试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    , T( R6 y# S" m7 M2 Z; n8 h# l这个版本有点问题,我已经更新,请重新下载,链接不变4 D7 g! q6 y: U; F: w

    2 R4 j) Z. M' h: k. {7 q& L
    4 ^- ~: _8 J& \) v& v7 T
    : l* X) k/ w2 q9 y& J' a
  • 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 编辑
    / Z6 [! U* ^4 J- c, i: L- W
    Budha 发表于 2019-3-23 09:45
      b' X& o$ b$ O9 g) d* Y' @楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...

    6 o- A0 R  o* P$ `: [http://127.0.0.1:5000 只能用本机访问
    0 ^' s; y( U$ z* c  Z
    * V  ^) v% `7 ~. L/ r3 m; S; o如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/
    # V& q8 I* Y7 a8 E改为
    4 A8 w) C7 w( N7 x# d: x
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

    ; H7 ?! \8 ?6 U+ \2 [
  • 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 编辑 + Y! i% }; n& F
    Budha 发表于 2019-3-23 14:445 Z8 R" z4 g0 B
    我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...

    # [% M5 z$ E6 ]. d如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0+ r, n/ U; h& h" N8 F7 w
    , J' H! Y( c& }% f
    如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径
    ) h; F0 H) K2 C
    3 J1 c/ O/ [+ \' }查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/" i( Q7 G2 K' E  z" g
    请重新下载 mdict 源码文件,刚修复一个界面问题。
    4 n' O8 V' d" _, [0 H% d
  • 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 编辑 ( Q) r6 \' A% c6 V
    Budha 发表于 2019-3-23 17:24* H! G% M5 p- N! ~9 l. Y" T
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    " k: R" {# y5 ~
    这个和程序没关系,关键在于你能不能远程访问家里的电脑$ w3 q3 O% l! v% K
    " U' H" A) S' O( D
    2 T# y% k2 G- u6 `! d, `3 q
    在Ubuntu上简单试用了一下,很不错。( x- V# z% J3 r- O( @
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    $ @( U& a: d- z: |& K+ H/ {1 ?4 o% R/ w; s; C8 s# I6 A
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    8 J! Y* F$ W" E# W+ t9 B还有就是,可不可以做成直接支持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 ?. M( q  a2 t! G5 z! z6 T
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    1 _/ j) E1 u! m' |9 v- F' M1 y+ ^, d还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...
    % Q- z6 v- P# z7 p' G  {
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    3 w& B! V* `; Y0 B确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。
    ) l2 ~5 Q9 {$ L1 ]+ u
    1 Z% I' \. a! c" b4 |6 {" o/ e% ?txt源码没做过,不清楚,但理论上可以,但可能会牺牲通用性。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
    - v$ u( q9 l* H3 M4 W9 Q( B" q词典code一定要规范,是不是做到xhtml标准的那种程度?* }1 q8 |( r+ D& I9 D! r
    确切的说,是的。因为词典code是 HTML 代码,各大 ...
    # N' p2 {) T* v- K+ b( C0 o
    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
    8 k& e! g4 s+ D可以办到,但主要功能不是我提供的
    $ e9 y0 c0 |4 F! [; N, n  b! O8 x0 l- z: ^% B
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    % o9 [8 Y* r% W/ J. M
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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
    . _" r- V8 U; t谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    1 i1 r. P; f2 r, h6 S$ j6 u

    6 c4 t6 M+ Y: a1 K是简单些,但是会危险些
    - N0 q8 u1 T3 l! P4 x4 [" k
    ! T$ ~- O2 N$ p; W简单:
    % [' R8 |/ {  h( b* p, q3 g: f& m# _直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射% t. F, T" O5 C6 X

    9 a8 Q' F/ s* f$ a" g5 I危险:+ p1 ]6 H: Y6 d7 a1 x5 n" L. 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
    $ p+ V6 j. M8 `7 G- o( lmdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    9 \1 G# W# k2 o7 U3 e8 O+ j- g
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。9 c# J5 ~7 N. U4 y
    1 }* l1 h" L7 r; a3 f7 H  U! ~+ L
    这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    % a# {# `$ ]8 H% R4 U+ J; ]静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    3 G1 U$ e4 N; e! f! ?& t* b$ }; m! Z2 {# u* Y
    显然第二种方法更有效率,用户体验更好。8 p, g' D+ |+ ?! G( n
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09
    5 q; m& c# @2 ^) @" \3 l是简单些,但是会危险些
    8 f$ A9 X1 P" \, U, P2 {& e( y( u) N7 e9 m$ c4 @9 A
    简单:
    ! a9 L7 b- F* s5 }' L) H
    我看了下一共有5个地址
    - V; ^* j3 X+ g% n2 E- X1.物理(mac)地址
    ( H2 g& w/ u/ e5 r. E3 Q0 h2.ipv4地址; t8 m( v3 O" P
    3.ipv6地址1 u: K+ A2 t: U' R1 i; G
    4.默认网关' y9 w. m6 F! J! e: l) M
    5.dns服务器! j6 q8 _. A. ]
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16) K8 G: }5 v* A/ h% ?6 O
    我看了下一共有5个地址6 N! \- ^$ m5 c& ]0 e! |* }
    1.物理(mac)地址
    ( C( q6 k# c% D2.ipv4地址

    6 R, K6 J2 h. j1 N6 j, U$ A2.ipv4地址
    * g( m9 ?$ R; L% U
    ) M5 h: r. v8 I' k5 C- dipv4: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, 2025-4-19 08:41 , Processed in 0.031336 second(s), 33 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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