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

档案管理员实操培训:Python快速搭建档案管理系统

发布时间:2026年06月07日 18:27:35 浏览量:0

环境搭建与项目初始化

在开始构建档案管理系统之前,必须先准备好Python运行环境。本指南基于Python 3.8及以上版本开发,使用轻量级Web框架Flask。请确保你的操作系统中已经安装了Python。如果没有安装,请访问 https://www.python.org/downloads/ 下载对应系统的安装包,安装时务必勾选 "Add Python to PATH" 选项。

打开终端(Windows下为CMD或PowerShell,Mac/Linux下为Terminal),输入以下命令验证Python是否安装成功:

```bash python --version ```

接下来,我们需要创建一个独立的项目目录,并在其中建立一个虚拟环境,以隔离项目依赖。在终端中依次执行以下命令:

```bash 创建项目文件夹 mkdir archive_system cd archive_system 创建虚拟环境 python -m venv venv 激活虚拟环境 Windows系统执行: venv\Scripts\activate Mac或Linux系统执行: source venv/bin/activate ```

虚拟环境激活后,命令行前缀会出现 (venv) 标识。此时,安装Flask框架及其依赖:

```bash pip install flask ```

为了保持项目结构清晰,请在项目根目录下手动创建以下文件夹结构:

数据库设计与初始化

本系统采用SQLite数据库,因为它无需配置单独的数据库服务器,非常适合轻量级档案管理系统的快速落地。我们需要设计一张 archives 表来存储档案信息。

设计档案数据表结构

在项目根目录下创建一个名为 schema.sql 的文件,并写入以下内容。这段SQL语句定义了档案表的结构,包含自增ID、档案标题、所属分类、归档日期、存放位置和备注信息。

```sql DROP TABLE IF EXISTS archives; CREATE TABLE archives ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, category TEXT NOT NULL, archive_date DATE NOT NULL, location TEXT, description TEXT ); ```

编写数据库初始化脚本

为了方便一键生成数据库文件,我们在根目录下创建 init_db.py。这个脚本负责连接数据库、读取上述SQL文件并执行建表操作。

```python import sqlite3 connection = sqlite3.connect('instance/archive.db') with open('schema.sql') as f: connection.executescript(f.read()) cur = connection.cursor() 预置一条测试数据,方便验证系统是否运行正常 cur.execute("INSERT INTO archives (title, category, archive_date, location, description) VALUES (?, ?, ?, ?, ?)", ('2023年度财务审计报告', '财务', '2023-12-31', 'A区-01架-02层', '包含年度资产负债表及利润表') ) connection.commit() connection.close() ```

在终端中执行以下命令初始化数据库。执行成功后,instance 文件夹下将生成 archive.db 文件。

```bash python init_db.py ```

后端核心业务逻辑开发

后端是系统的核心,负责处理前端发送的请求并与数据库交互。我们在根目录下创建主程序文件 app.py

编写Flask应用主程序

app.py 中,我们需要配置数据库连接,并编写一个辅助函数来获取数据库连接对象,确保每次请求后都能正确关闭连接。

```python import sqlite3 from flask import Flask, render_template, request, url_for, flash, redirect app = Flask(__name__) app.config['SECRET_KEY'] = 'your_secret_key_here' 用于Flash消息加密 辅助函数:获取数据库连接 def get_db_connection(): conn = sqlite3.connect('instance/archive.db') conn.row_factory = sqlite3.Row 允许通过列名访问数据 return conn 辅助函数:获取单条档案记录 def get_post(post_id): conn = get_db_connection() post = conn.execute('SELECT FROM archives WHERE id = ?', (post_id,)).fetchone() conn.close() return post ```

实现档案的增删改查接口

档案管理员实操培训:Python快速搭建档案管理系统

继续在 app.py 中添加路由逻辑。我们需要实现首页展示(列表)、创建档案、删除档案这三个核心功能。

```python 路由:首页,显示所有档案列表 @app.route('/') def index(): conn = get_db_connection() 按归档日期降序排列查询 archives = conn.execute('SELECT FROM archives ORDER BY archive_date DESC').fetchall() conn.close() return render_template('index.html', archives=archives) 路由:创建新档案 @app.route('/create', methods=('GET', 'POST')) def create(): if request.method == 'POST': title = request.form['title'] category = request.form['category'] archive_date = request.form['archive_date'] location = request.form['location'] description = request.form['description'] if not title: flash('标题是必填项!') else: conn = get_db_connection() conn.execute('INSERT INTO archives (title, category, archive_date, location, description) VALUES (?, ?, ?, ?, ?)', (title, category, archive_date, location, description)) conn.commit() conn.close() return redirect(url_for('index')) return render_template('create.html') 路由:删除档案 @app.route('/delete/', methods=('POST',)) def delete(id): post = get_post(id) conn = get_db_connection() conn.execute('DELETE FROM archives WHERE id = ?', (id,)) conn.commit() conn.close() flash(f'档案 "{post["title"]}" 已成功删除!') return redirect(url_for('index')) if __name__ == '__main__': app.run(debug=True) ```

前端页面与交互实现

为了使系统具备可视化的操作界面,我们需要编写HTML模板。Flask默认在 templates 文件夹中查找模板文件。

构建基础HTML模板

创建 templates/base.html。这是父模板,定义了页面的整体布局,其他页面将继承此模板以保持风格统一。这里包含了简单的导航栏和消息提示区域。

```html {% block title %} 档案管理系统 {% endblock %}
{% block header %} {% endblock %}
{% for message in get_flashed_messages() %}
{{ message }}
{% endfor %} {% block content %} {% endblock %}
```

开发档案管理主界面

创建 templates/index.html。该页面继承自 base.html,主要负责展示档案列表表格。如果数据库中没有数据,会显示提示信息。

```html {% extends 'base.html' %} {% block title %} 档案列表 {% endblock %} {% block header %} 现有档案库 {% endblock %} {% block content %} {% for archive in archives %} {% endfor %}
ID 标题 分类 归档日期 存放位置 操作
{{ archive['id'] }} {{ archive['title'] }} {{ archive['category'] }} {{ archive['archive_date'] }} {{ archive['location'] }}
{% if not archives %}

暂无档案记录,请点击右上角新增。

{% endif %} {% endblock %} ```

创建 templates/create.html。这是新增档案的表单页面,包含所有必要的输入字段。

```html {% extends 'base.html' %} {% block title %} 新增档案 {% endblock %} {% block header %} 录入新档案 {% endblock %} {% block content %}
{% endblock %} ```

添加CSS样式美化

为了不让界面过于简陋,我们在 static 文件夹下创建 style.css 文件,添加以下样式代码。这将为表格、表单和按钮添加基础的美化效果。

```css body { font-family: sans-serif; margin: 0; padding: 0; background-color: f4f4f4; } nav { background: 333; color: fff; padding: 1rem; display: flex; gap: 1rem; } nav a { color: fff; text-decoration: none; font-weight: bold; } .content { padding: 2rem; max-width: 900px; margin: 0 auto; background: fff; box-shadow: 0 0 10px rgba(0,0,0,0.1); } table { width: 100%; border-collapse: collapse; margin-top: 1rem; } th, td { padding: 0.8rem; border-bottom: 1px solid ddd; text-align: left; } th { background-color: 007bff; color: white; } tr:hover { background-color: f1f1f1; } button { background-color: dc3545; color: white; border: none; padding: 0.5rem 1rem; cursor: pointer; } .form-group { margin-bottom: 1rem; } label { display: block; margin-bottom: 0.5rem; font-weight: bold; } input, select, textarea { width: 100%; padding: 0.5rem; box-sizing: border-box; } button[type="submit"] { background-color: 28a745; width: 100%; padding: 1rem; font-size: 1rem; } .flash { padding: 1rem; background: e2e3e5; color: 383d41; margin-bottom: 1rem; border-left: 5px solid 6c757d; } .tag { background: e9ecef; padding: 2px 6px; border-radius: 4px; font-size: 0.9em; } ```

系统运行与功能验证

所有代码编写完毕后,即可启动系统进行测试。确保虚拟环境已激活,并在终端中运行以下命令启动Flask开发服务器:

```bash python app.py ```

终端会显示服务运行信息,通常是 Running on http://127.0.0.1:5000。打开浏览器,访问该地址。

验证步骤如下:

  1. 查看列表: 首页应自动显示初始化脚本中插入的“2023年度财务审计报告”数据。
  2. 新增测试: 点击导航栏的“新增档案”,填写表单(标题必填),点击提交。系统应自动跳转回首页,并在列表顶部显示新添加的记录。
  3. 删除测试: 点击列表中某条记录的“删除”按钮,浏览器弹出确认框,确认后该记录从列表中消失,页面顶部显示“档案...已成功删除”的提示。
  4. 数据持久化: 重启终端服务(Ctrl+C停止后重新运行 python app.py),刷新浏览器页面,之前添加的数据依然存在,证明SQLite数据库读写正常。

至此,一个基于Python Flask和SQLite的轻量级档案管理系统已完全搭建完成。该系统具备档案的录入、展示、分类标记及删除功能,完全满足基础的数字化档案管理实操需求。

数字档案馆系统学籍数字档案馆系统实用操作指南
数字档案馆系统学籍数字档案馆系统实用操作指南
上个月我闺蜜评中级职称,需要提供当年的本科学籍档案证明。她跑了三趟原学校档案馆,人家说十年前的纸质档案,早就挪去郊外的仓库了。要调档得提前一周预约,还得本人签字才能调,给她急得连着两晚睡不着。后来才知...
2026年06月07日 18:27:35
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818