汉字数据库
kanjidb的Python项目详细描述
坎吉德布
汉字数据库生成器和restapi。在
汉字数据库旨在通过编译帮助您建立自己的汉字数据库 将来自各种现有源的信息放入单个JSON文件中。 它的插件系统让你编写自己的插件来收集和添加新的数据到kanjis, 或者安排已经编写好的插件来满足您的需求。这是目标 就是要有足够的灵活性让你把你所有的信息都输出出去 需要建立自己的应用程序(数据库,查看器,Anki deck builder,…)和 学习日语的进步。KanjiDB还附带了一个restapi,允许 检索这些信息并建立服务upon。在
在线演示
您可以在kanjidb.jeremymorosi.com/api/v1/doc上在线测试REST API:
文档由aiohttp_swagger
生成。在
安装
使用pip:
pip install kanjidb
显示帮助:
^{pr2}$生成JSON数据库
创建一个kanjis.txt
文件,每行包含一个UTF-8编码的汉字。这是kanjis的列表
将包含在我们的数据库中:
一
二
三
现在,创建一个config.yml
文件,其中包含:
run:-kanjidic2:kd2_file:path/to/kanjidic2.xmlinputs:-type:streamencoding:utf8separator:"\n"path:path/to/kanjis.txtoutputs:-type:streamindent:4path:path/to/db.json
在此配置中:
- ^{str1}$kanjistream:是一个插件,它使用kanjidic2xml文件中的数据生成JSON dict。在
- path/to/kanjidic2.xml:是kanjidic2 xml文件(download here)的路径。在
- path/到/汉字.txt:是
kanjis.txt
文件的路径。在 - path/到/数据库.json:是生成的JSON数据库的目标。在
运行以下命令:
python -m kanjidb build config.yml
这将生成一个db.json
文件,其中包含生成的JSON数据库。
根据您的配置,这个文件可能相当大,所以这里只是您
将获得:
{"一":{"meanings":[{"m_lang":"","value":"one"}]},"二":{"meanings":[{"m_lang":"","value":"two"}]},"三":{"meanings":[{"m_lang":"","value":"three"}]}}
您可以阅读有关kanjidic2
插件及其配置here的更多信息。在
运行restapi
现在我们将运行一个带有restapi的本地服务器,它允许我们从生成的db.json
文件中查询信息。在
首先,创建一个config.cnf
文件,其中包含:
[service]port=8080base-url=/api/v1swagger-yml=/path/to/swagger.ymlswagger-url=/api/v1/docdb-file=/path/to/db.json
只需更换:
- /path/到/招摇过市.yml:按本地^{
} 文件的路径。在 - /path/到/数据库.json:按生成的
db.json
文件的路径。在
现在运行:
python -m kanjidb run /path/to/config.cnf/directory/
你应该看到:
======== Running on http://0.0.0.0:8080 ========(Press CTRL+C to quit)
意味着服务已经准备好了。在
您可以通过以下方式访问:
- http://127.0.0.1:8080/api/v1/doc:Swagger文档
- http://127.0.0.1:8080/api/v1/kanji:列出数据库中的所有汉字。在
请注意,这个存储库还包括一个默认的config.cnf
,swagger.yml
和
db.json
可用于运行服务器的文件。只需签出此存储库并运行:
python -m kanjidb run etc
与Docker一起跑步
您可以通过下载此存储库并运行以下命令来构建Docker映像:
docker build -t kanjidb:latest .
接下来,将Docker映像运行为:
docker run \ -v /path/to/etc:/etc/service \ -v /path/to/log:/var/log/service \ -p 8080:8080 \ -it kanjidb:latest
其中:
- /path/to/etc:是指向包含^{str 1}的服务目录的路径$配置cnf。在
- /path/to/log:不存储日志的目录的路径。在
- 8080:是访问restapi的公共端口。在
你应该看到:
======== Running on http://0.0.0.0:8080 ========(Press CTRL+C to quit)
意味着服务已经准备好了。在
测试
test
目录包含许多可以运行的测试:
pythonsetup.pytest
或者有保险范围:
coveragerun--source=kanjidbsetup.pytest
- 项目
标签: