掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5628|回复: 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' s* M0 a. \& B% \1 j2 G6 A
    楼主呀,ubuntu的详细安装教程能不能发个呀?

    8 b/ f. @  m! u2 J; i0 q
    1 t  z: w+ A3 M0 J5 u* M6 kubuntu 更简单,方法更多:
    ( I9 L( O, Z- w! V+ l4 @% a) n0 c1 M, c4 ?
    1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget$ A. E% O6 N' |2 |+ Z
    2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip / v- F+ q; P' L  i$ K! J$ `( s
    3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    ( d: q$ S6 X' R
    ' F; M6 s9 M0 t# d4. 安装依赖包,pip3 install -r requirements.txt
    + {# [$ t; d' w5.建立 content 目录, mkdir content' ]* i; m+ E4 C1 f4 _

    + c: Q3 ~! a$ z6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    0 D4 z7 _. H; L9 e. o) r7 A0 y0 a4 a+ |
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响
    7 L2 b  v0 |; H! {' N2 a
    ' w4 A3 h" s: ]$ T: J" h8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...
    & Y. i  g' B8 p( x4 Y9. 运行 flask run
    " Y7 ]6 O5 q2 B+ S$ M$ U10. 浏览器访问 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 编辑 2 Q" ]( D/ `* I2 s
    Budha 发表于 2019-3-23 17:24* g: V8 O7 C0 x/ o7 G' b1 A6 J
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    / L7 t4 m# F9 u4 S: B" |7 |; M) c5 V
    可以办到,但主要功能不是我提供的
    1 @! E! L( o; Y  O1 e
    : l5 s4 _& C4 p+ L1. 首先,运行我的程序,家里内网的机器可以正常访问
    " F- V( {- _' [2. 在家里 AP 路由上做地址转换) |' S+ n2 w+ [' j. C, w- r* R7 k
        例如,映射外部端口 5000,到家里内网  <pc_ip>:5000
    " k! P3 B3 Z) T: O1 Z, T+ \  j4 }# Q* K5 ^; F* J
    注意:
    & Z+ B! t8 z( x  @0 N% A( I   1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以
    # I# d9 s+ s% z1 C6 L   2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决
    # k% h* M! M, e" D. |# Z   3. 映射的外网端口不能是 80,或 443 ,ISP 禁止
    / [; @6 f0 u& w% Z( ]' ^$ J* B" }* J3 B, g$ b
    总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。, P  T8 d5 D  O4 [' j' L

    " |4 p) R9 A: x, V7 h! E
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 0 [  \0 R$ ^/ Q* i: k4 u7 G
    AttributeError: module ‘mdict’ has no attribute 'init_app'
    1 n5 t1 _. [2 j; 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 编辑 # X. i3 A+ l% O" Y' ?9 g: B
    dengao 发表于 2019-3-22 16:57
    9 J4 z# P( I+ G2 m" C; h我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    * K: H& ?4 D. b- r3 G$ Y+ ~5 m4 uAttributeError: module ‘mdict ...
    5 w% {: k% g/ t7 ?' B+ {! U8 b
    运行:flask run9 n3 q. A" I7 u, r
    试试
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-22 21:26:58 | 显示全部楼层
      p' x; Z2 p8 Y3 g3 S
    这个版本有点问题,我已经更新,请重新下载,链接不变9 T$ I+ S; e2 ]. P# m

    ) g8 J) v; R: T" \2 X7 y' f9 V2 {/ o0 o
    ' Z+ q* H2 W) M( O1 [! T6 ]
  • 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 编辑 5 _& B; [' Y- y8 T5 Q+ [
    Budha 发表于 2019-3-23 09:45
    2 q3 Q7 a( b) B# F8 k- L8 b楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    5 D% S" D+ \+ u5 j" P
    http://127.0.0.1:5000 只能用本机访问
    ! r5 n5 X# s' Q) \& S
    - K" X  ~" y5 N1 }  [2 O7 j. \如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/+ b+ \$ W7 _2 |5 {; ~. S
    改为2 J' Y' p% y) E: _0 G8 V
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码

    , \. @" B2 J5 l& S5 H5 w! M
  • 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 编辑 ( B5 @. S) T' D3 Z" l1 \4 E
    Budha 发表于 2019-3-23 14:44
    0 |8 V7 c  F  U, O( L' ]我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...

    # f  f" q& {$ Z如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.0+ z- w3 V/ I2 G: F2 {

    5 X  t! W1 L4 o  c2 J- X如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径
    / ~# J2 k3 R; G6 i9 E# r: N* H9 p. C* y
    查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/) d4 i7 b( a' j+ R
    请重新下载 mdict 源码文件,刚修复一个界面问题。
    % N1 v9 |  g6 N9 i6 S
  • 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 编辑
    # u' p2 D* k9 Y7 T, m
    Budha 发表于 2019-3-23 17:24
    " q) n$ l6 w; y: ], s2 E我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...
    ! q; F; O3 A, k$ O6 C8 ^9 A9 w/ k
    这个和程序没关系,关键在于你能不能远程访问家里的电脑1 c$ E3 H) S& n4 o7 o2 r3 M
    - i5 U& e) b) M. w5 t% z) l
    3 B$ ~9 v( l: K9 y9 q6 a
    在Ubuntu上简单试用了一下,很不错。8 c  \* [9 t$ t7 \
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    1 z4 u+ Y9 [3 u, ]3 }# |
    - s: k+ [" }1 g  q. w3 U词典code一定要规范,是不是做到xhtml标准的那种程度?* K2 B2 ^) S) P, ]: 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
    7 A; B9 }8 I5 W3 ^词典code一定要规范,是不是做到xhtml标准的那种程度?& Z; K0 {# B; J% s
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...

    8 O/ ?! `5 T6 r* ~& |, h) d/ T词典code一定要规范,是不是做到xhtml标准的那种程度?- A# F: L! L1 l' D
    确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。
    9 N% |5 d" h0 s4 B4 \' w7 `. [
    8 v: y) y  \2 s! ]* L2 \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; V4 g% d6 b" v7 @' r0 h, N8 T& g
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    - ?+ i: r" m/ w( C8 X: q( T  u; _确切的说,是的。因为词典code是 HTML 代码,各大 ...
    ' w* g  O6 y2 h# t
    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
    4 @0 A/ w7 G$ i8 ]* L) m5 v可以办到,但主要功能不是我提供的# h1 h. ?6 o1 o4 M  S: O9 C

      W, C; M# j, u$ `$ _1. 首先,运行我的程序,家里内网的机器可以正常访问

    : `+ l" G  ]# u( s3 N0 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:375 j5 k1 B. Z0 N
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...

    6 B6 U# C/ k' S
    1 a1 k2 L3 Q$ C5 {是简单些,但是会危险些
    2 S8 V9 a' f1 W6 V: W- D% B  y/ f! D
    简单:
    - e* g" [4 C0 D5 t  A直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射3 Z0 r. N' q+ @, y+ e- ?

    & k" R  N' V+ d; w! ]危险:
    $ E* d( M. R( u# V% J0 gPC 直连到 Internet 上,没有经过防火墙隔离(Windows自带的不算)容易招到网络攻击,windows 补丁不能及时更新,容易被人攻入
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-24 11:18:08 | 显示全部楼层
    流星冲击 发表于 2019-3-24 05:48; j& w9 |) \: V+ I
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...

    0 V0 \5 b  K( q8 T5 A是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。; K! X8 b0 D/ B* G9 M
    ! V. }$ i# p" N( L
    这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示
    1 D6 s1 o' V, ?. d6 W. T静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递* }/ G" O0 Y( ]! v' W2 ?4 v
    % i+ X* d1 I. \8 ^+ Q/ j
    显然第二种方法更有效率,用户体验更好。
    - n+ V/ O5 t% N9 I, t! E& f
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09) H" d$ k; Y! Z' G' A
    是简单些,但是会危险些1 R0 X+ I$ B) Z. J

    9 L: l/ C8 U) k. O+ h简单:

    4 ]3 X9 E# t$ F3 {# |1 J; Z我看了下一共有5个地址
    ! ]- r. }6 ~. c5 ?1.物理(mac)地址
      v2 M1 k" z+ j  I2.ipv4地址
    2 g- l5 F$ s% \8 A4 C  Y1 `, T3.ipv6地址
    6 S% T% ^& G  n9 j4 b4.默认网关5 b9 L4 `- }" E5 s. f
    5.dns服务器
    % q8 C0 D5 N. n; v. E+ A我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16
    6 M& E' S( t% `6 b; T, I我看了下一共有5个地址% V$ b* o1 y, J" P" L
    1.物理(mac)地址
    ' m$ g# x3 I, X# k9 @& t2.ipv4地址

    $ J, L* a; s" `0 q9 o2.ipv4地址
    % g* Q+ P5 s, O" D% c
    $ t8 i1 r* b6 Sipv4:5000
  • TA的每日心情
    开心
    2021-4-11 18:44
  • 签到天数: 88 天

    [LV.6]常住居民II

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

    [LV.9]以坛为家II

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

    本版积分规则

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

    GMT+8, 2024-4-18 22:26 , Processed in 0.173333 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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