前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用 Django + Electron + Vue 写一个桌面文档客户端

用 Django + Electron + Vue 写一个桌面文档客户端

作者头像
州的先生
发布2021-12-01 17:53:17
2K0
发布2021-12-01 17:53:17
举报
文章被收录于专栏:州的先生州的先生

对于 Pythoner 来说,能用 Python 生态内的库写程序,就坚决不用其他语言的库。

但是很多时候,Python 的触手处之不及的地方,我们还是得用其他语言的东西来实现想法和完成功能

最近,州的先生发现一个很苦恼的问题,就是在浏览器上用 MrDoc 写文档的步骤太繁琐了。

因为 MrDoc 只提供了 Web 端,所以只能:

  • 1、打开浏览器
  • 2、访问 MrDoc 的网站
  • 3、再进行文档的创建
  • 4、最后才开始写文档。

我就在想,能不能简化一下这个步骤。

当然可以,开发一个桌面客户端就能够实现简化写文档这件事的步骤

有了想法之后,就是技术选型了。

虽然州的先生对 Python 和 PyQt5 比较熟悉,但是设计中的桌面文档客户端需要涉及到编辑器和 Markdown 文档的渲染,这在 PyQt5 中还真不太好处理。

经过一番调研,最终选择了如下的技术栈来开发这个桌面客户端:

  • Electron:跨平台桌面应用开发框架
  • Vue:JavaScript 框架
  • ElementUI:Vue 的 UI 框架
  • Electron-store:Electron 数据存取

在这里没有看到我们的 Django 呀,其实我们的后端接口是通过 MrDoc 的用户Token API 提供的,所以Django默认是包含在内了。

API 接口

MrDoc 的用户 token 接口目前包含了如下内容:

  • 获取文集列表
  • 获取文集的文档列表
  • 获取文档详情
  • 新建文集
  • 新建文档
  • 更新文档
  • 上传图片

基于这些个接口,构建我们的桌面客户端绰绰有余了。

创建项目

在这里,我们使用 Vue脚手架 vue-cli 来搭建我们的桌面客户端。

首先安装vue-cli:

代码语言:javascript
复制
npm install @vue/cli -g

然后使用 vue-cli 创建项目

代码语言:javascript
复制
vue create mrdoc-desktop

根据实际情况,选择需要的配置。

在上述过程完成后,进入到项目的目录内(在这里是./mrdoc-desktop)

通过安装 electron-builder 将 Electron 集成到项目中:

代码语言:javascript
复制
vue add electron-builder

在安装完 electron-builder 依赖和选择 Electron 的版本后,我们的项目就创建完成了。

项目结构

因为使用了 electron-builder,所以在项目创建完成之后,就已经存在一个最基础的 Electron 应用了。

其中:

  • background.js 是 Electron 的核心文件,有关 Electron 主进程的操作都在这个文件内进行处理。
  • main.js 是 Vue 的入口文件;
  • App.vue 是 Vue 的根组件;
  • /router 文件夹存放的是我们定义的路由文件;
  • /pages 文件夹存放的是我们的页面组件;

项目运行

在命令行终端界面,输入如下命令即可运行项目:

代码语言:javascript
复制
npm run electron:serve

两个页面

在这个桌面客户端程序中,一共有两个页面:

  • 首页
  • 配置页

其中,首页用于显示文集列表、文档列表和进行文档的编辑。

配置页,则用于配置 MrDoc 服务的相关信息:

首页到配置页的跳转通过 Electron 的菜单进行:

项目源码

目前这个项目还在紧锣密鼓的开发中,并且代码已经开源在了 Gitee 平台,地址为:https://gitee.com/zmister/mrdoc-desktop

欢迎大家提意见、反馈问题、提交PR完善功能。

MrDoc 官网:

https://mrdoc.pro

开源版源码地址:

https://gitee.com/zmister/MrDoc

https://github.com/zmister2016/MrDoc

Linux一键部署脚本:

https://gitee.com/jonnyan404/oh-my-mrdoc

Windows图形界面部署面板:

https://gitee.com/debj031634/win-django

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 州的先生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • API 接口
  • 创建项目
  • 项目结构
  • 项目运行
  • 两个页面
  • 项目源码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档