掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5675|回复: 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
    + `* r' S' ~/ _3 y" X楼主呀,ubuntu的详细安装教程能不能发个呀?
    - s1 v8 v; i8 @3 Y
    + y. V: J) ?$ P' T' q. S: t" D
    ubuntu 更简单,方法更多:
    ! J/ j8 T  t% D# C1 ~6 `% _; r; w. r8 K3 m# z' M4 S0 ]9 k! u
    1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget4 \; s( n& A+ N5 u+ d7 K/ l0 }0 }/ W
    2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip ! \5 O: O7 r0 E5 m
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    ! K) W7 R1 E/ d/ f' x" ^4 Y8 T' H0 c; ]
    4. 安装依赖包,pip3 install -r requirements.txt4 x4 j% m, j1 a' r
    5.建立 content 目录, mkdir content( |; A$ u# b5 s: p# d. ]0 A. {

    ) e- L) }( D, `. ^6 p' {6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    ' M' m+ T  P# a4 H7 ~: |6 q- g  F7 f0 g* R
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响/ G1 W5 w! `; y4 K& ^9 Y. ~
      F" i) K; D6 L4 [- x
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典..." R( W( T' k3 W$ B# u4 Z6 s) {
    9. 运行 flask run
    9 L8 o# I7 C0 g10. 浏览器访问 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 编辑 ! H0 f9 G0 j/ y2 t8 ^- ~4 o
    Budha 发表于 2019-3-23 17:24) h# b' c1 s0 z+ l1 ~2 C
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    5 N. D4 {1 A; v% \% \/ X$ Y: k
    可以办到,但主要功能不是我提供的
      M* n" ~) E2 H' r5 H( U) p# G( {+ O2 {% J0 H+ ]# G+ O
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    5 K$ @  R; N' t6 T' c0 K2. 在家里 AP 路由上做地址转换- I+ M% ~6 p+ R7 N2 x8 J! n
        例如,映射外部端口 5000,到家里内网  <pc_ip>:5000
    ( Y% A2 Z, p0 r
    ' V8 ~! n( e" F8 A3 Y注意:. |/ G* U- f  Z* A& x! ^
       1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以
    . V( r0 \/ w8 C, S   2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决
    1 {$ F  [, @) K) w* S   3. 映射的外网端口不能是 80,或 443 ,ISP 禁止
    + W, C7 q1 }2 C, v
    ; A& c  M9 L) a& w6 s. v总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。9 J: P! z$ X( f+ y& z* Z5 T! z, I1 i3 G

    7 b6 v8 |* [* C  s  ^" i
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 - }! J3 ]( k& q& d! [" g' l, N
    AttributeError: module ‘mdict’ has no attribute 'init_app'
    " O  X7 c* y2 l6 w不能正常访问网页
  • 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 编辑 0 H6 ?' [! F$ K* C3 f
    dengao 发表于 2019-3-22 16:57% ]& H- X6 @7 @: ]
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 / }# t( Q" Q4 F
    AttributeError: module ‘mdict ...

    8 s0 D0 }9 `, }4 ^& _运行:flask run
    " ?; c: u) A* t" b) h9 p试试
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-22 21:26:58 | 显示全部楼层
    " ^: q" B7 ?- b! g& w- F9 l
    这个版本有点问题,我已经更新,请重新下载,链接不变( n/ Q7 W5 E( D* K3 V3 q

    2 w, M' h# |9 E% V7 p' w9 H  l, d6 S" u1 D% }! I

    4 e/ j& \1 G0 x  _$ q+ @
  • 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 编辑
    " n& Z; K/ [. @0 a
    Budha 发表于 2019-3-23 09:45+ m, z( j6 l, C% N9 `9 k
    楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
      u, i6 d9 L; x" T
    http://127.0.0.1:5000 只能用本机访问
    : R, e3 e/ o5 h6 p# N  T+ N! p9 b$ k4 h  }7 t( V
    如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/
    , @7 D/ [) L7 B  N# q  S* |改为
    ' Y, m# D( P" m
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

      Y0 ^+ J1 N% f, k' {) h
  • 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 编辑   _6 D. Z5 q" z
    Budha 发表于 2019-3-23 14:44% h5 U+ |1 S2 K6 t# W: Y4 @) u
    我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...

    . I; X* {3 \" q, N7 M如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0
    . w1 m6 P8 n# A5 O" |3 K; c2 l! ~2 r; r3 \' N0 G
    如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径& k' V, v8 f; m! ~5 Z
    " _. X& w5 J7 L) `# d
    查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/8 F% ^" T" B7 |! b0 `) p
    请重新下载 mdict 源码文件,刚修复一个界面问题。# x! z$ }* A$ A% z' @
  • 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 编辑 # b7 d' N+ f, o; U
    Budha 发表于 2019-3-23 17:24  {1 ]& U, g: P5 p2 n* ^
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    # r4 K- F& E- `* ]" b这个和程序没关系,关键在于你能不能远程访问家里的电脑
    . S& H6 m# W1 `* l- z% b
      T( H* `4 ~1 Y5 d
    $ y  x6 r. K- ]; ^; p3 {在Ubuntu上简单试用了一下,很不错。
    ) M) m# d- v! H% M: _
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    8 A. ^9 u- D7 }1 J/ g
      p) n# K% Q. I8 x! w词典code一定要规范,是不是做到xhtml标准的那种程度?
    0 {2 \. `6 h# {3 w还有就是,可不可以做成直接支持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- _. k1 R' O5 v6 i) [
    词典code一定要规范,是不是做到xhtml标准的那种程度?
      T! S! t- A3 l5 q/ C6 ]! w还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...
    5 i1 T! e: e7 p( |/ h
    词典code一定要规范,是不是做到xhtml标准的那种程度?! }: o$ m* B* t9 H, h3 `$ ]
    确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。3 u0 s1 u' T# x: `  r7 d
    5 E' V7 }+ Q5 @% A8 c1 Z
    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:299 q; T% e, k, B0 p  n
    词典code一定要规范,是不是做到xhtml标准的那种程度?. Q3 e; ?1 J0 G, y3 G
    确切的说,是的。因为词典code是 HTML 代码,各大 ...

    , Y) ?% `) x7 p" d2 B  v6 K1 gmdx源码的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
    * G5 \+ G+ W/ A可以办到,但主要功能不是我提供的/ i4 |* s( T3 b$ U" V# O
    * G, w0 E9 V: A, |
    1. 首先,运行我的程序,家里内网的机器可以正常访问

    ! _) \6 |# i, \& w. 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:37
    , Q: r" `: g; t3 Y0 }谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    * x, q; ]) O3 d. }

    2 }$ C% H& J7 E- K8 ]! U4 |$ }. r: O是简单些,但是会危险些
    + u1 y" ^3 B$ e* R' W" R3 g1 P6 j# v; r) {) V! N# l
    简单:: B  C/ O4 s5 e
    直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射
    ; l0 b# e8 B. Q( [3 V* @5 O0 P' V$ l0 Y' q. ^
    危险:
    + a4 r% {; s, O0 h- O: X; u& ]PC 直连到 Internet 上,没有经过防火墙隔离(Windows自带的不算)容易招到网络攻击,windows 补丁不能及时更新,容易被人攻入
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:18:08 | 显示全部楼层
    流星冲击 发表于 2019-3-24 05:489 m" _' S' [5 {
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...

    . @+ P8 V8 `; u! w& e; U$ o, |是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。
    2 r* g+ b5 R; }- K; U" b7 ~0 G& t' V8 @1 N& Z! y
    这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    . y) y7 t' y+ _3 p2 y8 e静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    5 k8 ?1 V6 z1 X! {# n9 ]
    0 ]1 P( `; Z8 U1 ?. q* Q" Y6 `2 }显然第二种方法更有效率,用户体验更好。; @! R7 l8 i; A1 R9 _1 ~
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:097 q4 }) `! G, h1 x6 o1 p
    是简单些,但是会危险些
    6 @: K/ i$ n; S! E( F$ R
    + ^1 f. Y, a1 O) Y简单:

    5 z6 z1 [* q: {/ e- q7 v, ?+ k我看了下一共有5个地址
      f+ p/ h. m2 P& P: P1 p1.物理(mac)地址
    ' I; H/ c/ M# R; n5 [2.ipv4地址8 Z; S6 F6 p+ I7 `
    3.ipv6地址. j2 V; T. b7 R2 |' X
    4.默认网关
    5 Y1 W; y- s/ P# K: ?3 S5.dns服务器$ f# Z* E' C! O3 W! k- l1 p
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16  A1 W+ G+ P* u& U7 w* E9 C
    我看了下一共有5个地址7 D5 G8 Y; U$ N
    1.物理(mac)地址
    5 U) I& I% ?( V0 e" Z3 D2 Q( u8 |2.ipv4地址

    " b: M2 a3 g* _2 @; c$ c* f/ T2.ipv4地址2 F2 m6 q8 Y7 V) j1 m6 J& R

    . o- Y7 O0 \& ?$ B" y5 Vipv4: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 16:14 , Processed in 0.158051 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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