掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5674|回复: 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
    & }: ^, B/ Z8 P5 e' p, P楼主呀,ubuntu的详细安装教程能不能发个呀?
    - h4 h  B* d' n' }) D3 j2 r* y
    + k8 F" i. X0 Y* ^( l$ d$ a
    ubuntu 更简单,方法更多:# @/ J7 w) R7 U3 N+ o5 p- z
    & y; F$ Y4 f3 p9 J. X- T
    1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget
    $ C- r" R# L8 f& c9 S& [2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip 3 k8 n# d3 V, D( L8 C5 u4 K7 O1 S
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    3 Q' w  K0 S5 b
    ( v! I! x7 u" A( U4. 安装依赖包,pip3 install -r requirements.txt. A5 L6 v% E3 J" l* @
    5.建立 content 目录, mkdir content
    : W& P! u& }2 {2 u
    7 ]9 m4 F5 q+ F8 k) c6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv, k  X( C7 a6 Q5 w0 O

    $ B+ |" K7 t  F) g, N, m. S7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响
    9 _3 Q5 h( s/ }; o  _2 T" t. r/ T* O4 e5 p& K
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...
    ! X" V* D2 f( T( D0 }2 X9. 运行 flask run) a  {: @$ b- A- u
    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 编辑
    ' o' C. ^/ o2 U0 x
    Budha 发表于 2019-3-23 17:248 w) W* b' l" E
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    $ Y% z+ ]. d9 Q$ h  p
    可以办到,但主要功能不是我提供的
    % G8 d; g2 d4 v* a0 k. ?2 y* M5 w; u' C$ l
    1. 首先,运行我的程序,家里内网的机器可以正常访问
    : u7 \, `$ e' B+ S; v3 w2. 在家里 AP 路由上做地址转换/ ~* Y3 D, |( l. ~+ @0 ~- y) H) t9 l0 M
        例如,映射外部端口 5000,到家里内网  <pc_ip>:5000  A8 x/ y/ a- G, W" [$ w

    " x: P& L. z& K. C$ q7 b3 r, A) {注意:/ W- ]# w4 n: H, b4 V+ w. b" l( S( k
       1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以
      I; W. S6 g4 A3 j  |; J   2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决! {/ ?2 c: d+ z1 G
       3. 映射的外网端口不能是 80,或 443 ,ISP 禁止9 _( `& a5 D1 a
    + D* j1 {* m. g. ?& \0 Z) ~% k
    总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。
    1 }* e+ I# Y" q9 k% M. V  @4 f2 h1 ^+ W" `7 }
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 ( A  L/ Z! d/ z/ y
    AttributeError: module ‘mdict’ has no attribute 'init_app'" R" Q- N* J8 n8 _! a; i! K$ {8 z" d" S) R
    不能正常访问网页
  • 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 编辑 9 [/ W: L* c9 E
    dengao 发表于 2019-3-22 16:57
    & D" D# |- i+ w4 `" q1 y我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    % A" w$ Y1 R. `AttributeError: module ‘mdict ...
    5 N- c& h1 s7 n( N2 y
    运行:flask run- N7 S+ X5 B- r+ I# n4 w
    试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    & a2 W, N7 C6 H& h这个版本有点问题,我已经更新,请重新下载,链接不变
    9 g7 R* s; \# N8 a* j- Y1 A$ i( a  z, F( B' Y

    4 P) H/ C1 o+ h* W9 D/ {& B
    4 ^& Y  m- S9 e3 Z: ]$ ^/ v/ U+ s
  • 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 编辑
    # {! |' ?/ O7 W0 C; ?$ e7 k
    Budha 发表于 2019-3-23 09:45* |; G* G$ ?2 X# Q# J6 S9 v  C3 ?2 z
    楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    ' E# l3 v6 m( D% i- a0 p0 m+ Z
    http://127.0.0.1:5000 只能用本机访问5 ~& F1 t- c3 f4 E$ `

    . Q! B* \4 w# @# A& d7 |7 W如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/6 z! u$ I  M3 u! J) w+ Q
    改为
    : r9 S1 f. s& `# x) `- s% Q/ c
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码
    7 x* W! O5 B) ]! m, M! Q8 O
  • 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 编辑
    4 p+ L1 |6 a$ o* Q  d& {, _- d0 }
    Budha 发表于 2019-3-23 14:449 X) Q* a7 r0 y; F
    我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...
    $ y( D7 P& s. R9 L. ^, P
    如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0
    ) A. ?5 ]0 [" ]/ n; G
    % @- H3 E3 I7 ~: l如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径" {9 S8 p$ @- \
    , W% v' t/ ^2 g4 z* B/ H# v
    查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/% P" U  `& P9 E# p& k
    请重新下载 mdict 源码文件,刚修复一个界面问题。
    6 H; N6 N1 i! c$ @
  • 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 编辑
    , A& @  v8 v1 @3 y+ V" P
    Budha 发表于 2019-3-23 17:24
    * r# J4 `& Y1 Z5 z2 o4 B$ A我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    0 M3 Q6 D% N( {/ D* O$ B% t
    这个和程序没关系,关键在于你能不能远程访问家里的电脑' W! u7 `3 T9 W, m) ^" a

    + @6 s  I" q  |1 E, `1 z2 I: m! f# V% X' I4 J% P& s. W
    在Ubuntu上简单试用了一下,很不错。
    ! X9 p6 l, m) A/ e) u0 }
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    9 L$ n6 _3 w; C1 N+ i9 i" G' W4 z; y4 M
    词典code一定要规范,是不是做到xhtml标准的那种程度?6 t: ~: P( Q2 G1 o0 u) n. a( H
    还有就是,可不可以做成直接支持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+ u* B4 L: H0 \/ v4 \0 a
    词典code一定要规范,是不是做到xhtml标准的那种程度?" l1 {! J8 b, C( \9 f3 Q- k% E
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

    8 H7 Y6 m! W. Q- ]* `词典code一定要规范,是不是做到xhtml标准的那种程度?
      {" N$ n' a5 F# [; |确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。6 Q$ j$ _7 H4 y* c0 z6 F
    . X3 L% q5 N" ~. f& I# K
    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' m3 W2 Z5 K  [4 o* }4 N
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    7 |8 f3 o4 f3 ?- }& o3 ^确切的说,是的。因为词典code是 HTML 代码,各大 ...
    3 |% |/ G3 k0 u, X
    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
    , U, S; N  x4 H可以办到,但主要功能不是我提供的) J; ]+ t0 a. B0 X3 N3 E. W

    : F4 j3 _$ ~* [$ s/ W1. 首先,运行我的程序,家里内网的机器可以正常访问
    4 B; W1 O) H  t8 B  u' u: r7 p
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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
    , ^( p, S3 u+ Y( c谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...

      G2 I# Q0 r5 K/ e+ j) x$ r0 r) j
    . a8 s6 U: b% T是简单些,但是会危险些$ `! m7 Y7 n0 T
    % y4 ]2 Q4 h6 F0 }! h1 X
    简单:
    % d% ^& o" F# l" ~! f直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射9 D) `, U" P6 `5 W+ Y2 r* \
    0 \- t' j9 X' j. d3 G( E5 Y+ r
    危险:' a0 ]. H; ^* G* `& ^0 S, d
    PC 直连到 Internet 上,没有经过防火墙隔离(Windows自带的不算)容易招到网络攻击,windows 补丁不能及时更新,容易被人攻入
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:18:08 | 显示全部楼层
    流星冲击 发表于 2019-3-24 05:480 k; ^5 [/ ]" f. P; ?6 q
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...

    : c+ o' `8 \, Y是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。" B; Z9 k, P5 q$ {$ F  Y

    : y% {" p  n5 x2 k- _& n9 ]7 N这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示* |' N0 @2 b" B& w" c0 H, N
    静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    : E2 W$ q1 D6 c+ g& H
    ) Y$ V; t! Y  y* m( V* ?显然第二种方法更有效率,用户体验更好。- G* O8 c3 S+ L* i
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09/ r& K# M# b7 V* \# ~3 B) S- S* i
    是简单些,但是会危险些; }2 g$ B1 z6 D  X' _6 Q8 H, p4 F
    4 m& [2 o, S( [1 p3 N! C
    简单:
    4 _& f/ S8 J# X9 W
    我看了下一共有5个地址
    ( v3 p8 g0 \: P4 |' v5 |1.物理(mac)地址, A/ j1 e- p( r7 U, Q
    2.ipv4地址* D# p% z, Q2 G9 c6 S0 O6 p4 q
    3.ipv6地址
    6 \/ p0 Z4 ^! o% k  J+ x: |  g) |4.默认网关; i" L+ x" m/ E# z5 Z# v) R; S+ v
    5.dns服务器1 E5 k8 N- r; M% v, T; e, c. d
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16
    8 W& r# g! c8 l( R我看了下一共有5个地址, I# ~' l9 Z8 D/ z
    1.物理(mac)地址
    . H- W) l1 S3 y4 y1 Y% U5 Q2.ipv4地址
    0 A6 J/ b/ b4 A3 d# o  u: N* ?" ]
    2.ipv4地址4 M" H/ _% X7 p% z' C& O% v7 z4 x0 J
    ( ~8 \: J0 d, Q2 Z- E
    ipv4: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 14:08 , Processed in 0.124831 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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