掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 4503|回复: 29

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

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

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

    [LV.7]常住居民III

    发表于 2019-3-22 12:21:41 | 显示全部楼层 |阅读模式
    购买主题 已有 90 人购买  本主题需向作者支付 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& L6 t& W* V2 w! S. [$ ^. ^4 P- q
    楼主呀,ubuntu的详细安装教程能不能发个呀?

    % ^" W1 ]% ?5 ^2 q$ [" ]; M. A$ x% H! M5 Y1 j+ [! [6 @- g: g! a
    ubuntu 更简单,方法更多:
    + w5 d! c% f9 ^$ P, q) {. `; L- H+ I  K; ~! J( [
    1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
    : p" o  v9 H# S" X* Z. N- L! G7 U2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip 0 ?$ c# o+ H7 [8 t
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    + h- C+ g: X) \1 I& p1 `
    1 d" i( u: ?9 w4. 安装依赖包,pip3 install -r requirements.txt; P. z, G& k0 f
    5.建立 content 目录, mkdir content2 R/ Z/ T' C" N) @: P
    7 P0 q: J6 Z$ ~  j- z# u
    6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    9 \: \1 ~2 L+ A# n6 P( M! `) H5 ?( v
    & L' J2 G: R( C! B( {7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响
    ( ?! p7 e' Z. Y. q' k, b  E8 P; W  D7 c
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...
    - E' I, E4 z* H/ a' U! I9. 运行 flask run
    9 j% @- x* e5 _3 b' I: c10. 浏览器访问 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 编辑 ; Q, Q" i( y0 g" ^6 |  C$ _
    Budha 发表于 2019-3-23 17:24
    ' a- @' i# u) _3 V  }我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    + U4 i: D/ |  }" G+ z! v
    可以办到,但主要功能不是我提供的
    8 t. V3 t1 O, B- p7 v* g& `& o& w4 k% S4 h/ j! E; I& C
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    0 X" [% `7 a# B! Q2. 在家里 AP 路由上做地址转换/ U: z$ F, @$ ?1 ^
        例如,映射外部端口 5000,到家里内网  <pc_ip>:50005 r6 x$ [' _4 |) U) L6 a. f

    , h4 i5 ]0 I0 d6 g0 L, c8 ]注意:% E; [: Y: i% M$ O% t! h0 V
       1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以
    : s  g/ T% V9 e& o. R  h, W   2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决7 B5 H  n2 x  V: R3 f  X4 b( a
       3. 映射的外网端口不能是 80,或 443 ,ISP 禁止9 B' T' e: |' E, }

    ( e( |9 f+ G5 X/ ^; z$ e1 c总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。
    9 D/ o: D% S, ], X$ X6 p+ A. X9 @5 f. r; H' @; V% x! W. O
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 , ^9 K5 a8 }* o
    AttributeError: module ‘mdict’ has no attribute 'init_app'! r. Z% `4 B7 |8 L+ 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 编辑
    3 }/ Z( D# F% E8 J* A; p0 Z' t
    dengao 发表于 2019-3-22 16:57
    / s$ A  ~  D6 n% D( g$ m我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    ) G# r, @0 \& {( _- a# }/ b0 |AttributeError: module ‘mdict ...
    6 @8 y! \$ b1 v7 O0 ~7 y
    运行:flask run* t* b/ j5 h7 J9 B0 l; G
    试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    ; s' k" ^! \* V3 ^; w7 }! R这个版本有点问题,我已经更新,请重新下载,链接不变
    7 U4 z  k- @0 @$ R5 u  t* i" }1 i4 {. _: y, k

    4 M/ c  K; n# O! A( z$ f  |
    ! Y: f* l: K" e4 j1 I6 G) A& M. v
  • 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 编辑
    7 i+ B/ q7 z3 c3 Z; a8 y) t
    Budha 发表于 2019-3-23 09:45
    & q) {* B; H* o. z) f, E楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    : ]& N4 `9 H6 U+ e6 O2 \" [! N* t$ y
    http://127.0.0.1:5000 只能用本机访问# ]- w6 [3 p; B$ u, ]/ z  H
    8 p3 F& B' I) B4 B* B0 ^
    如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/% J) ]5 s3 f8 @
    改为
    & i9 w5 f* }' t% L& `
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码
    ! c4 U* U4 B/ X* J) [
  • 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 编辑
    - w; t: [" f6 Z' m) X0 ^# V# W
    Budha 发表于 2019-3-23 14:44
    + ~9 r8 b  l6 E7 Y我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...
    ! m2 u$ ^, Q$ v1 Y+ m0 [/ ?
    如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0
    % z* P1 y: Z1 H4 W2 [1 b  `- T$ i) y0 a  \! [
    如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径1 E: H9 J1 ^5 ~4 s% {# Z

    ; ?7 }: L. s2 R3 V; X3 c5 j查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/7 B1 R. m0 W2 W0 B) w& G0 ~, S
    请重新下载 mdict 源码文件,刚修复一个界面问题。; b* E+ h" B: ]/ q8 w) y& w
  • 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 编辑
    3 F9 u% J) n( J9 ]# q2 N
    Budha 发表于 2019-3-23 17:24
      n: {( T2 z: ^0 D  m3 t我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    4 U; K. r$ P  ?/ n
    这个和程序没关系,关键在于你能不能远程访问家里的电脑
    3 o# O; ]& g" \
    9 X  P, H3 g3 _( m/ J! e5 y/ V! ~8 G! M5 `8 V. w) \! k
    在Ubuntu上简单试用了一下,很不错。
    + n2 {. B; G, M" ^
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    6 ?: d2 o9 ?9 m' n6 L! Q% D
    8 |  f* {5 D, x3 z" L; w/ T词典code一定要规范,是不是做到xhtml标准的那种程度?
    ) o8 B" l2 r0 {. R4 T2 i) g# _* k9 A还有就是,可不可以做成直接支持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 C: V/ p' t2 C2 C& m, r" f词典code一定要规范,是不是做到xhtml标准的那种程度?# j: c6 z7 d. `9 q& c
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

    : M  q9 d$ G7 t, p5 f. T词典code一定要规范,是不是做到xhtml标准的那种程度?: `' V$ k' \1 }* s
    确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。
    3 }" R$ g4 g$ K& V* E) m5 @
    6 ]) |% j9 B6 j0 Y8 U1 |) {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
    ' Y. F3 m* U  k- W词典code一定要规范,是不是做到xhtml标准的那种程度?/ n1 F0 ~4 g# Y/ [/ ^/ a2 U- X
    确切的说,是的。因为词典code是 HTML 代码,各大 ...
    7 _- l  ^7 M0 Z6 A" u
    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
      y3 g2 {5 J- c- l可以办到,但主要功能不是我提供的# v, W' Z5 F, ^9 x3 L
    % t# W" H7 B6 @1 s+ I( V
    1. 首先,运行我的程序,家里内网的机器可以正常访问

    6 G% d/ H/ |0 |8 |+ @谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情况,这样设置的话是不是要简单点?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:09:59 | 显示全部楼层
    Budha 发表于 2019-3-24 07:372 D6 D6 W, @: ?2 U$ e0 c
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    # E4 [7 ?# f, t5 H8 r7 `
    4 B' p" _: B9 s, T8 w3 H2 F6 [$ {. ?
    是简单些,但是会危险些# \9 ~7 s3 u, p, W9 H) d' C

    ) k4 B/ C& H8 ^7 \2 s简单:' r( {& s, k, D) T2 i- S0 w
    直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射
      f; O4 i, B1 h* m% f( k! v5 v
    危险:
    7 g# p4 B: u) N* m. b  e) |0 y2 h+ DPC 直连到 Internet 上,没有经过防火墙隔离(Windows自带的不算)容易招到网络攻击,windows 补丁不能及时更新,容易被人攻入
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:18:08 | 显示全部楼层
    流星冲击 发表于 2019-3-24 05:482 E# T; V" g+ s
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    " X5 b: h6 P# J4 W. P% c
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。
    9 y( h/ A6 m- t  \; y( V1 g. r0 m' q
    这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    ! @% `( `# i0 m  Y& A静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    % P  w3 V2 H0 u/ o; i
    / F/ {4 R! x+ u2 c5 Q* l) V显然第二种方法更有效率,用户体验更好。
    $ c/ f% }# m  i1 B+ m8 A/ [
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09
    ; ~; m6 X* W$ e4 n0 G; c2 J是简单些,但是会危险些: \3 p; n, {+ k; U
    1 A* ?# g# s9 U: K! i0 o) [
    简单:

    ) B6 Z, {8 Y- N7 y& H  O+ g我看了下一共有5个地址9 ]2 o: ?/ t; _7 p
    1.物理(mac)地址
    5 v5 v8 @9 g. r& _1 ~/ l0 N2 i5 i) S2.ipv4地址' A$ {  t# p) z$ W- m
    3.ipv6地址- J# C+ i  q8 f2 n8 @$ B5 h3 Q, k
    4.默认网关
    ; ^4 p0 \; j, \2 @" q5.dns服务器& S, J+ l/ c) I' V( D
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16
    % f' @3 k0 [5 T7 R7 G0 n& d5 V我看了下一共有5个地址
    7 w' H) t) ?$ u1.物理(mac)地址! p8 o1 o( f% R
    2.ipv4地址
    1 O& v: G1 w# P% z4 L. h
    2.ipv4地址2 E$ I9 v2 V& X$ T% ?9 |3 G

    & T! q! A, [! q! ~# A4 D$ k5 gipv4:5000
  • TA的每日心情
    开心
    2021-4-11 18:44
  • 签到天数: 88 天

    [LV.6]常住居民II

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

    [LV.9]以坛为家II

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

    本版积分规则

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

    GMT+8, 2023-9-27 20:26 , Processed in 0.085468 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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