网站首页/ 信息中心/ 技术指南/

手把手教你搭建数字档案协同办公管理系统

发布时间:2026年06月27日 08:15:24 浏览量:0

一、环境准备与依赖安装

在开始构建数字档案协同办公系统之前,必须先准备好基础运行环境。本系统采用 Python 作为后端语言,因其生态丰富且部署简单;前端使用原生 HTML5 配合 JavaScript,无需复杂的构建工具,确保零门槛上手。

1. 安装 Python 环境

请确保你的系统已安装 Python 3.8 或更高版本。打开终端或命令提示符,输入以下命令检查版本:

```bash python --version ```

如果未安装,请前往 Python 官网下载对应系统的安装包并安装。安装时务必勾选 "Add Python to PATH"

2. 创建项目目录与虚拟环境

为了保持项目隔离,建议创建独立的文件夹并激活虚拟环境。执行以下命令:

```bash mkdir digital_archive_system cd digital_archive_system python -m venv venv ```

激活虚拟环境:

3. 安装核心依赖库

本系统主要依赖 Flask 框架处理 Web 请求。执行以下命令安装:

```bash pip install flask ```

二、后端核心逻辑开发

后端负责处理文件的存储、元数据管理(如上传者、时间、分类)以及下载请求。我们将使用 SQLite 作为数据库,因为它无需额外安装数据库服务,适合轻量级协同办公系统。

1. 初始化数据库与配置

在项目根目录下创建名为 app.py 的文件。该文件包含完整的后端逻辑。我们需要导入必要的库并设置配置参数:

```python import os import sqlite3 import time from flask import Flask, request, jsonify, send_from_directory, render_template from werkzeug.utils import secure_filename app = Flask(__name__) 配置上传文件夹 UPLOAD_FOLDER = 'uploads' if not os.path.exists(UPLOAD_FOLDER): os.makedirs(UPLOAD_FOLDER) app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER 允许上传的文件扩展名 ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'doc', 'docx', 'xls', 'xlsx'} DB_NAME = 'archive.db' ```

2. 数据库连接与初始化函数

手把手教你搭建数字档案协同办公管理系统

app.py 中继续添加数据库初始化代码。该逻辑会自动创建一个名为 files 的表,用于存储档案的元数据,实现协同办公中的信息追踪。

```python def get_db_connection(): conn = sqlite3.connect(DB_NAME) conn.row_factory = sqlite3.Row return conn def init_db(): conn = get_db_connection() c = conn.cursor() 创建文件表,包含ID、文件名、上传者、分类、上传时间 c.execute('''CREATE TABLE IF NOT EXISTS files (id INTEGER PRIMARY KEY AUTOINCREMENT, filename TEXT NOT NULL, uploader TEXT NOT NULL, category TEXT, upload_time TEXT)''') conn.commit() conn.close() 启动时初始化数据库 init_db() ```

3. 辅助函数与路由实现

添加文件格式检查辅助函数,以及核心的上传、列表、下载接口。请将以下代码完整追加到 app.py 中:

```python def allowed_file(filename): return '.' in filename and \ filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS 首页路由 @app.route('/') def index(): return render_template('index.html') 上传接口 @app.route('/api/upload', methods=['POST']) def upload_file(): if 'file' not in request.files: return jsonify({'error': '无文件部分'}), 400 file = request.files['file'] uploader = request.form.get('uploader', 'Anonymous') category = request.form.get('category', 'General') if file.filename == '': return jsonify({'error': '未选择文件'}), 400 if file and allowed_file(file.filename): filename = secure_filename(file.filename) 处理重名,添加时间戳 timestamp = str(int(time.time())) saved_filename = f"{timestamp}_{filename}" file.save(os.path.join(app.config['UPLOAD_FOLDER'], saved_filename)) 存入数据库 conn = get_db_connection() conn.execute('INSERT INTO files (filename, uploader, category, upload_time) VALUES (?, ?, ?, ?)', (saved_filename, uploader, category, time.strftime('%Y-%m-%d %H:%M:%S'))) conn.commit() conn.close() return jsonify({'message': '上传成功', 'filename': saved_filename}), 201 else: return jsonify({'error': '文件类型不允许'}), 400 获取文件列表接口 @app.route('/api/files', methods=['GET']) def list_files(): conn = get_db_connection() files = conn.execute('SELECT FROM files ORDER BY upload_time DESC').fetchall() conn.close() file_list = [] for row in files: file_list.append({ 'id': row['id'], 'filename': row['filename'], 'uploader': row['uploader'], 'category': row['category'], 'upload_time': row['upload_time'] }) return jsonify(file_list) 下载接口 @app.route('/uploads/') def download_file(filename): return send_from_directory(app.config['UPLOAD_FOLDER'], filename) if __name__ == '__main__': app.run(debug=True, port=5000) ```

三、前端交互界面构建

为了实现协同办公的前端交互,我们需要创建一个包含上传表单和文件列表的页面。在项目根目录下创建一个名为 templates 的文件夹,并在其中新建 index.html 文件。

1. 页面结构与样式

该页面包含一个简洁的上传区域和动态加载的档案列表。使用 CSS 进行简单的布局美化,确保操作直观。

```html 数字档案协同办公系统
数字档案协同办公系统

档案列表

文件名 上传者 分类 上传时间 操作
```

四、系统运行与功能验证

代码编写完成后,最后一步是启动服务并进行实际操作测试,确保协同办公流程畅通。

1. 启动服务

确保虚拟环境处于激活状态,在终端执行以下命令启动 Flask 应用:

```bash python app.py ```

终端显示 Running on http://127.0.0.1:5000 即表示启动成功。

2. 执行协同办公操作

打开浏览器,访问 http://127.0.0.1:5000。按照以下步骤验证功能:

  1. 上传档案: 点击“选择文件”按钮,选取本地的一个文档(如 PDF 或 Word)。在“上传者姓名”栏输入“张三”,选择分类为“合同文件”,点击绿色“上传档案”按钮。页面应提示“上传成功”,并在下方列表中立即显示该条目。
  2. 多用户模拟: 刷新页面,再次上传一个文件,但在“上传者姓名”栏输入“李四”,选择“财务报表”。观察列表中是否正确区分了不同的上传者和分类,这验证了协同办公的基础属性记录功能。
  3. 下载协同: 在列表右侧点击“下载”链接。浏览器应开始下载对应文件,且文件名应为原始文件名(后端处理了时间戳前缀的剥离显示,但下载的是真实文件)。
  4. 数据持久化验证: 关闭终端(停止服务),然后重新执行 python app.py。再次刷新浏览器页面,之前上传的文件列表依然存在,证明 SQLite 数据库已正确保存数据。

3. 目录结构确认

操作完成后,检查项目根目录,应自动生成以下结构:

  • uploads/:存放所有上传的物理文件。
  • archive.db:SQLite 数据库文件,存储元数据。
  • app.py:后端核心程序。
  • templates/index.html:前端页面。
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818