Python+Vue3+onlyoffice开发私有化文档管理系统实战笔记 20240731

之前进度

表字段设计如下:

js 复制代码
const columns = [
  {
    title: '名称',
    key: 'name',
    dataIndex: 'name',
  },
  {
    title: '类型',
    key: 'category',
    dataIndex: 'category',
  },
  {
    title: '作者',
    key: 'author',
    dataIndex: 'author',
  },
  {
    title: '路径',
    key: 'path',
    dataIndex: 'path',
  },
  {
    title: '最近访问时间',
    key: 'latest_view_time',
    dataIndex: 'latest_view_time',
  },
  {
    title: '大小',
    key: 'size',
    dataIndex: 'size',
  },
  {
    title: '操作',
    key: 'action',
  },
];

创建数据库

sql 复制代码
drop database if exists onlyoffice;
create database onlyoffice character set utf8mb4;

关于文档大小字段类型的讨论

如图:

MySQL中int类型的最大值是2147483647,经过计算,可以存储2048M的文件大小。

所以也就是能够存储2G的大小,对于文档类型的文件来说,超过2G是不被允许的,也不太可能,所以int类型够用了。

创建表格

python 复制代码
import env
import mcrud

env.load("../.env")

db = mcrud.new_env()

columns = [
    "name varchar(255)",
    "category varchar(255)",
    "author_id varchar(255)",
    "author varchar(255)",
    "path varchar(255)",
    "latest_view_time datetime",
    "size int",
]
db.add_table("file", columns)

onllyoffice支持的文档类型

word - 文本文档 (.doc、.docm、.docx、.docxf、.dot、.dotm、.dotx、.epub、.fb2、.fodt、.htm、.html、.mht、.mhtml、.odt、.ott、.rtf、.stw、.sxw、.txt、.wps、.wpt、.xml),

电子表格 (.csv、.et、.ett、.fods、.ods、.ots、.sxc、.xls、.xlsb、.xlsm、.xlsx、.xlt、.xltm、.xltx、.xml),

演示文稿 (.dps、.dpt、.fodp、.odp、.otp、.pot、.potm、.potx、.pps、.ppsm、.ppsx、.ppt、.pptm、.pptx、.sxi),

便携式文档格式 (.djvu、.docxf、.oform、.oxps、.pdf、.xps)。

构造点假数据

python 复制代码
import env
import mcrud
import rand
import snowflake
import random

env.load("../.env")

db = mcrud.new_env()

columns = [
    "id",
    "name",
    "category",
    "author_id",
    "author",
    "path",
    "latest_view_time",
    "size",
]
values = []
suffixs = {
    ".docx": "word",
    ".xlsx": "excel",
    ".ppt": "ppt",
}
for i in range(100):
    suffix = random.choice(list(suffixs.keys()))
    category = suffixs.get(suffix)
    filename = rand.str.str(6) + suffix
    view_time = (f"{rand.num.int(2022, 2024)}-"
                 f"{rand.num.int(1, 12):02d}-"
                 f"{rand.num.int(1, 28):02d} "
                 f"{rand.num.int(0, 23):02d}:"
                 f"{rand.num.int(0, 59):02d}:"
                 f"{rand.num.int(0, 59):02d}")
    values.append([
        snowflake.idstr(),
        filename,
        category,
        snowflake.idstr(),
        rand.user.name(),
        f"{rand.str.str(6)}/{rand.str.str(6)}/{filename}",
        view_time,
        rand.num.int(100, 100000),
    ])

db.add_many("file", columns, values)

后续计划

  • 1、最近文档表格完善
  • 2、实现登录功能
  • 3、新建文件,复制文件,删除文件
  • 4、其他
相关推荐
python猿几秒前
打卡Python王者归来--第30天
开发语言·python
2401_8318249615 分钟前
为你的Python脚本添加图形界面(GUI)
jvm·数据库·python
2401_8796938717 分钟前
用Pygame开发你的第一个小游戏
jvm·数据库·python
用户03321266636724 分钟前
使用 Python 查找并高亮 Word 文档中的文本
python
xushichao198926 分钟前
实战:用OpenCV和Python进行人脸识别
jvm·数据库·python
雷工笔记41 分钟前
随笔|走!跳楼去!
笔记
yy我不解释42 分钟前
关于comfyui的mmaudio音频生成插件时时间不一致问题(三)
开发语言·python·ai作画·音视频·comfyui
冗量1 小时前
langchain的学习路径
python·langchain
就叫飞六吧1 小时前
国产数据库gbase8s安装-网盘
笔记
用户69371750013841 小时前
不卷AI速度,我卷自己的从容——北京程序员手记
android·前端·人工智能