手把手教你用Python搭建轻量级档案整理系统
技术选型与架构说明
本指南将带你从零构建一个基于Web的档案整理系统。我们不使用复杂的前后端分离架构,而是采用Python Flask作为后端框架,SQLite作为数据存储,前端使用原生HTML结合Bootstrap实现。这种组合无需配置复杂的服务器环境,安装Python即可运行,非常适合个人或小团队快速落地档案数字化管理需求。
系统核心功能包括:档案上传、元数据录入(如分类、年份)、关键词检索以及档案删除。所有代码均为完整实现,复制即可运行。
一、环境准备与依赖安装
在开始编写代码前,需要确保本地环境已配置妥当。请打开终端(CMD或PowerShell),依次执行以下步骤。
1. 创建项目目录
为了保持项目整洁,我们在桌面上创建一个名为archive_system的文件夹,并进入该目录:
2. 创建并激活虚拟环境
虚拟环境可以隔离项目依赖,避免版本冲突。执行以下命令创建名为venv的虚拟环境:
创建完成后,激活虚拟环境。注意Windows和MacOS的命令略有不同:
- Windows:
venv\Scripts\activate - MacOS/Linux:
source venv/bin/activate
激活成功后,命令行前缀会出现(venv)标识。
3. 安装核心依赖
本系统仅依赖Flask框架及其相关工具。执行以下命令进行安装:
```bash pip install flask ```二、数据库设计与初始化
档案管理系统的核心在于数据的结构化存储。我们将使用SQLite数据库,它无需安装数据库服务,一个文件即可搞定。我们需要在项目根目录下创建一个init_db.py文件来初始化数据库结构。
1. 创建初始化脚本
新建文件init_db.py,并写入以下完整代码:
2. 执行初始化
在终端中执行以下命令生成数据库文件:
```bash python init_db.py ```执行后,项目目录下会多出一个archives.db文件。该表包含了档案标题、分类、描述、文件存储路径和上传时间。
三、后端核心逻辑开发

接下来编写后端主程序app.py。该文件负责处理文件上传、数据写入、查询响应等所有业务逻辑。请在项目根目录下创建app.py,并创建一个名为uploads的文件夹用于存放上传的文件。
1. 创建上传文件夹
```bash mkdir uploads ```2. 编写后端完整代码
将以下代码完整复制到app.py中。代码中包含了详细的注释解释每一步操作:
四、前端页面构建
Flask默认在templates文件夹中寻找HTML文件。我们需要创建该文件夹,并在其中创建index.html。为了美观且无需编写复杂CSS,我们将引入Bootstrap 5 CDN。
1. 创建模板目录
```bash mkdir templates ```2. 编写前端页面代码
在templates文件夹下新建index.html,并填入以下代码。这是一个单页应用,包含了上传表单、搜索栏和数据表格:
档案整理系统
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for message in messages %}
{{ message }}
{% endfor %}
{% endif %}
{% endwith %}
录入新档案
档案列表
标题
分类
上传时间
操作
{% for archive in archives %}
{{ archive['title'] }}
{{ archive['description'] }}
{{ archive['category'] }}
{{ archive['upload_date'] }}
删除
{% else %}
暂无档案数据
{% endfor %}
| 标题 | 分类 | 上传时间 | 操作 |
|---|---|---|---|
|
{{ archive['title'] }} {{ archive['description'] }} |
{{ archive['category'] }} | {{ archive['upload_date'] }} | 删除 |
| 暂无档案数据 | |||
五、系统运行与操作演示
至此,所有代码已编写完毕。现在启动系统并进行实际操作。
1. 启动服务
确保终端仍处于虚拟环境激活状态,且位于项目根目录下,执行:
```bash python app.py ```当终端显示Running on http://127.0.0.1:5000时,说明服务已成功启动。
2. 访问与录入
打开浏览器,访问 http://127.0.0.1:5000。你将看到一个整洁的界面。
- 录入测试: 在左侧表单中,输入标题“2023年度财务报表”,选择分类“财务”,上传任意本地文件,点击“提交归档”。页面刷新后,右侧列表将即时显示该条记录。
- 搜索测试: 在右上角搜索框输入“财务”或“报表”,表格将自动过滤出匹配的行。
- 删除测试: 点击列表右侧的“删除”按钮,确认后,该条记录将从数据库移除,且服务器上的物理文件也会被同步删除。
3. 常见问题排查
如果在运行过程中遇到报错,请检查以下两点:
- 文件夹权限: 确保
uploads文件夹存在且有写入权限。 - 依赖缺失: 如果提示模块未找到,请重新执行
pip install flask。
这套系统虽然轻量,但具备了完整的CRUD(增删改查)核心流程,代码结构清晰,后续若需增加用户登录或OCR识别功能,可直接在此基础上扩展。