掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5644|回复: 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
    " j1 T/ k% ]8 W7 s7 V楼主呀,ubuntu的详细安装教程能不能发个呀?

    % c0 p% Q' Q% C; q& s1 W: Q1 L
    % S6 _$ v; k, n8 h; u) }: Cubuntu 更简单,方法更多:
    ! i* m: }7 S( P
    ! ?2 }. q0 y/ P; U1. 打开 terminal 窗口,  安装 apt install python3  python3-pip git unzip wget- G" i; v- D# H: G9 \- ^6 b
    2. 下载  wget https://github.com/liuyug/flask-mdict/archive/master.zip
    8 \$ e) _% v! B+ c0 c* y7 t3.  unzip master.zip .  用 git clone https://github.com/liuyug/flask-mdict/ 也可以
    9 b; v1 m: C: E) ^1 Y5 Z% v
    9 l" H% r# ?! `9 p. y( F4. 安装依赖包,pip3 install -r requirements.txt8 o5 [. z7 M; g' F% t
    5.建立 content 目录, mkdir content7 U7 C* J6 k; [' R. l* D3 d6 t
    2 ?+ _4 M7 G; J* x: }5 C
    6. 下载词频信息  https://github.com/skywind3000/ECDICT/raw/master/ecdict.csv
    - H& T3 [2 s7 w$ u1 W( I" J1 `7 Y0 T# s& G; X, Z0 N: ]6 q6 z
    7.将 ecdict.csv 转换为 sqlite3 格式,ecdict.db, 移动到 content 目录下,如果没有不能显示词频信息,其他不影响
    : n, f* y2 _  t  P" g$ b4 j; b6 R5 F9 t3 n
    8.将词典文件,mdx/mdd 放到 content 目录下,牛津/朗文/汉典...
    ! l4 p4 a$ m' D) `# T( A9. 运行 flask run" G% C# U5 M5 w7 W) W% d+ |
    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 编辑
    $ P  |# S1 c& }" Q7 f/ C
    Budha 发表于 2019-3-23 17:240 C7 a7 e. ^: V' s9 }' }
    我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    * R  G# l! n% M- i0 \- n可以办到,但主要功能不是我提供的& x3 v2 N8 s4 \' S0 v6 i

    ) c  \, M6 k3 p7 \$ k1. 首先,运行我的程序,家里内网的机器可以正常访问( T3 f4 c9 q; `
    2. 在家里 AP 路由上做地址转换
    ( V( s; {9 I. ~7 c, X1 z6 D8 }    例如,映射外部端口 5000,到家里内网  <pc_ip>:50007 v9 U5 c  w7 ]5 H* Q- \3 @0 c/ A

    * b: a. B7 Q0 q4 _' |* j/ [! Z注意:0 s) |  n; {3 O) Y3 v
       1. 家里 PC IP 要求是静态 IP,动态 IP (DHCP) 不可以# q: N6 C2 A2 x6 o; V9 f
       2. 你要知道当前确切的外网地址,即 家里 AP 路由在 Internet 上的 IP 地址。这个地址可能每天都会变化,可以通过 DDNS 解决
    ) G- S8 f' F; Y4 j" g, C2 H2 |   3. 映射的外网端口不能是 80,或 443 ,ISP 禁止2 s( h8 [) D# V
    . I2 l# k3 ^8 h# Z
    总之,主要是网络的问题,不是我程序的问题。太多 IT 术语,属于专业问题,没法细说。  R$ W. K# b0 s) P' R0 P& e9 E
    # A4 `! _1 Y3 h; y
  • TA的每日心情
    慵懒
    2020-7-19 14:44
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-3-22 16:57:31 | 显示全部楼层
    我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示
    ! q# j; c, L6 h2 r" K( {8 I( ]AttributeError: module ‘mdict’ has no attribute 'init_app'
    . G1 s- U  i4 Q& [/ b6 K( X& j) p不能正常访问网页
  • 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 ]8 H5 Z' q, H: q3 D- V
    dengao 发表于 2019-3-22 16:57
    0 K: A: R5 S9 _! o' |我按楼主说的flask run运行提示:没有模块 ‘mdict’ pip安装后运行提示 3 n# r9 R: w9 |/ J1 P
    AttributeError: module ‘mdict ...
    6 ]! a  K5 K, s" c
    运行:flask run
    ' @' P, p* }6 T0 y  N, D; D3 r0 a试试
  • TA的每日心情

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

    [LV.7]常住居民III

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

    ' `9 }$ A" }: ^这个版本有点问题,我已经更新,请重新下载,链接不变
    6 Q1 b2 u% t) o* y' j0 M
    9 f- t# c; e' M  q7 f: c/ v6 v+ ?# s$ G5 `
    . s2 p: f- H5 `& [
  • 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) ]3 _0 j" Y3 {
    Budha 发表于 2019-3-23 09:45" w9 ]5 G+ b6 A5 n- r3 q+ ^
    楼主,我刚才没说清楚,我说的是用手机打开http://127.0.0.1:5000,出现了127.0.0.1拒绝连接的提升,可能还 ...
    : J) F! u& g; c, I1 w+ B/ b
    http://127.0.0.1:5000 只能用本机访问- a3 B. {1 d2 ], M- H2 c& e8 u. l

    8 i8 A8 W$ ~6 X& e1 g0 r4 U5 @! I2 l如果用手机访问,需要改写下 mdict_start.cmd 文件,然后访问你电脑的 http://<your_pc_ip>:5000/
    " r& t; f1 @: X改为! B. C( l* Z! c+ `# W
    1. python\scripts\flask.exe run --host 0.0.0.0
    复制代码
    . n# c$ k/ x; n& F
  • 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 编辑 % T5 h5 Q9 i: e- t
    Budha 发表于 2019-3-23 14:44
    % Y- r) N6 H% `, [% N我运行绿色版的失败了,我就用第一种方法在本机上访问成功,但在手机上失败,按照第一种方法的话要改啥文件 ...

    , u+ X" n( D4 _/ J如果你自己安装的 python/flask 运行环境,那么直接运行 flask.exe run --host 0.0.0.08 Z; C3 z0 h3 c5 Y" w

    . ]- d0 l( a( a; r2 x如果用我提供的运行环境 python\scripts\flask.exe run --host 0.0.0.0, 前面就多个路径* W6 b- Z+ Z8 g; n

    : R2 q# K5 W$ a1 J- }查看您 PC的IP地址,用手机或其他在同一网络的电脑访问 http://<pc_ip>:5000/
      Q& o8 B1 a, B0 N请重新下载 mdict 源码文件,刚修复一个界面问题。5 D; r$ h/ ?7 v7 }- @( H
  • 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 编辑
    9 S+ m/ }( c. Y1 K
    Budha 发表于 2019-3-23 17:24
    ' O/ h8 \3 `/ T我的意思是我电脑一直开着,我人在外面上班或在外地出差,我远程访问家里的电脑,调用词典,楼主的程序可以 ...

    & t( {+ a0 ~4 Y8 @这个和程序没关系,关键在于你能不能远程访问家里的电脑9 b1 b* o$ j4 A! ~( @7 P
    , {3 z8 ]) ]" O: t
    4 A& r' S$ B% o+ t( u
    在Ubuntu上简单试用了一下,很不错。3 @' U; u) x; o) \9 d
  • TA的每日心情
    开心
    2019-3-26 21:36
  • 签到天数: 178 天

    [LV.7]常住居民III

    发表于 2019-3-23 23:32:47 | 显示全部楼层
    本帖最后由 流星冲击 于 2019-3-23 23:36 编辑
    9 t6 w/ n0 z3 N: x6 F
    + X/ ~) t& {. N0 w& g2 d% R% ^" h词典code一定要规范,是不是做到xhtml标准的那种程度?  F- E! Z, ~( [& H0 i' {
    还有就是,可不可以做成直接支持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; R  r: t5 v' U8 n  M
    词典code一定要规范,是不是做到xhtml标准的那种程度?; b8 L; X( @' }; m  t1 |5 b4 T; `/ D& m
    还有就是,可不可以做成直接支持mdx的txt源码?并且进 ...
    $ B" v7 v8 G! M
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    $ V8 f" v7 B& t& m确切的说,是的。因为词典code是 HTML 代码,各大软件都按 XHTML 标准支持,现在是 HTML5,其次再做一些冗余性调整,越规范,兼容性越好。' Z3 u1 K% k2 P

    " U' D4 e0 V6 ]0 C& G% Ptxt源码没做过,不清楚,但理论上可以,但可能会牺牲通用性。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' ]* x4 w  D' X! ]# z% E) q
    词典code一定要规范,是不是做到xhtml标准的那种程度?
    9 g  I. A7 L% u确切的说,是的。因为词典code是 HTML 代码,各大 ...

      ]6 d* h$ Z, U* e8 R6 N1 a0 wmdx源码的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
    3 f  C! [( K- Q6 q6 g可以办到,但主要功能不是我提供的
    ( L1 w3 \+ |& k9 j6 W/ k; G
    4 l7 }6 C9 Z0 V, D: ?5 S& O8 Q1. 首先,运行我的程序,家里内网的机器可以正常访问
    8 c6 w# v' }% f  ]3 U
    谢谢楼主解答,我家里的电脑是直接连在“光猫”上,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
    8 g$ S& ~  t4 G) V1 s; R! `2 W% D& @谢谢楼主解答,我家里的电脑是直接连在“光猫”上,500M的宽带,一个月1T流量后会降到300M,这是个基本情 ...
    : [& _9 |9 }* o: ]

    $ ]: B; ~/ n7 A5 U是简单些,但是会危险些
    1 H( B* }( o% l6 ^# N4 N# T) q
    2 t3 r# @# \! k/ c* P! k简单:
    2 M5 }9 C: R8 X4 Q1 @8 @直接连光猫上,PC 是需要拨号才能上网吧,查看拨号后的IP,应当是 Internet 公网IP,直接用手机访问这个 公网 IP 加 5000,即可。不需要网络端口映射7 N: d1 B8 ~4 J2 \
    ; y2 M8 I/ T0 a( z$ _, o2 J
    危险:! y' k* E  T' S9 w8 i
    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# M) J2 S9 A4 c# k# O
    mdx源码的txt都是有规律的,利用正则可以提取词头生成索引,txt文件太大,可以用dictzip压缩成dz(gzip文 ...
    ( n; x& y* @! s8 c' S7 S# g
    是可以生成索引,直接显示,但 TXT 格式变化有限,不支持字体,颜色,排版等复杂需求,直接显示到用户终端很丑陋,需要根据 TXT 指令转换为复杂的 HTML 格式才能解决。
    : k5 X6 u4 `; W+ P5 ~, U
    9 e/ F, e  T2 M. f- s这个转换可以动态转换,即显示一个词条时,先将 TXT 转换为 HTML,再显示- D5 J8 H5 d6 Z7 p0 |
    静态转换,先全部转换 TXT 格式到 HTML,显示时直接传递
    ) f$ c* T3 w3 @6 L
    8 }% v: g( |2 S4 }) E$ C显然第二种方法更有效率,用户体验更好。
      |0 p% I8 Y  `# M' l6 A% Q$ t. U
  • TA的每日心情
    开心
    2022-6-5 11:40
  • 签到天数: 814 天

    [LV.10]以坛为家III

    发表于 2019-3-24 13:16:05 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-24 11:09
    * c1 h; ~4 x/ ]1 ^  Y. h! N是简单些,但是会危险些5 m# A) j6 a7 ~; ?
    ' |- _3 r( N0 T( r
    简单:
    % c8 I# F7 U$ V; `/ x0 b" ]7 y
    我看了下一共有5个地址4 I& z2 m# o: R" u2 O, d
    1.物理(mac)地址
    5 c- j2 p6 t& ~7 G2.ipv4地址" D' [, l- M4 F
    3.ipv6地址
    3 u# E2 M  U+ C6 m: H- _. x/ v# g4.默认网关
    2 ]4 _. J( E4 S) K5.dns服务器0 S3 H5 u# n' S5 t
    我再手机上应该在哪个地址后加5000?
  • TA的每日心情

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

    [LV.7]常住居民III

     楼主| 发表于 2019-3-25 05:57:49 | 显示全部楼层
    Budha 发表于 2019-3-24 13:16* A  ?) ^+ [( k6 y" ^
    我看了下一共有5个地址# Q. m7 k, N) m8 |. I: N" e
    1.物理(mac)地址6 M, z- A# o9 p
    2.ipv4地址
    7 M# |% C4 E& M& c5 |. V& L9 K4 D
    2.ipv4地址8 U- l" i9 q  {( J2 Z' D4 u

    7 h5 C% F' H9 ~# p4 t5 Pipv4: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-23 23:44 , Processed in 0.121376 second(s), 14 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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