厦门档案管理软件零门槛搭建与实操部署指南

环境准备与依赖安装

在开始构建厦门档案管理软件之前,必须确保本地开发环境已配置好Python运行环境。本指南基于Python 3.9版本和Django 4.2 LTS框架进行开发,这两个版本组合具有极高的稳定性,适合企业级应用落地。我们需要在终端中执行以下命令来创建一个独立的虚拟环境,以避免依赖冲突。

1. 创建并激活虚拟环境

打开命令行工具,依次执行以下指令:

```bash mkdir xiamen_archive_project cd xiamen_archive_project python3.9 -m venv venv source venv/bin/activate ```

对于Windows用户,激活虚拟环境的命令应调整为 venv\Scripts\activate。激活成功后,命令行前缀会出现 (venv) 标识。

2. 安装核心依赖包

接下来,安装Django框架以及处理图片和文件所需的Pillow库。执行以下安装命令:

```bash pip install django==4.2.5 pillow==10.0.1 ```

为了确保后续部署顺利,建议将依赖包版本导出到文件中:

```bash pip freeze > requirements.txt ```

项目初始化与目录结构构建

环境配置完成后,我们将创建Django项目和应用。为了符合“厦门档案管理”的业务特性,我们将项目命名为 xiamen_archive_sys,核心应用命名为 archive_core

1. 创建Django项目与应用

在项目根目录下执行:

```bash django-admin startproject xiamen_archive_sys . python manage.py startapp archive_core ```

2. 注册应用

打开 xiamen_archive_sys/settings.py 文件,找到 INSTALLED_APPS 列表,将我们创建的应用添加进去,同时为了方便管理后台,也默认注册Django自带的admin应用:

```python INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'archive_core', 注册核心档案应用 ] ```

核心数据模型设计

档案管理软件的核心在于对文件元数据的精准管理。我们需要设计两个主要模型:ArchiveCategory(档案分类)和 ArchiveDocument(档案实体)。请打开 archive_core/models.py 文件,将原有代码全部替换为以下内容:

```python from django.db import models from django.utils import timezone class ArchiveCategory(models.Model): name = models.CharField(max_length=100, verbose_name="分类名称", unique=True) code = models.CharField(max_length=20, verbose_name="分类编码", unique=True) created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") class Meta: verbose_name = "档案分类" verbose_name_plural = verbose_name ordering = ['code'] def __str__(self): return self.name class ArchiveDocument(models.Model): STATUS_CHOICES = ( ('draft', '草稿'), ('active', '归档'), ('archived', '封存'), ) title = models.CharField(max_length=200, verbose_name="档案标题") doc_id = models.CharField(max_length=50, verbose_name="档案编号", unique=True) category = models.ForeignKey(ArchiveCategory, on_delete=models.PROTECT, verbose_name="所属分类") file = models.FileField(upload_to='archives/%Y/%m/%d/', verbose_name="档案文件") status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='draft', verbose_name="状态") description = models.TextField(blank=True, null=True, verbose_name="档案描述") upload_time = models.DateTimeField(default=timezone.now, verbose_name="上传时间") updated_time = models.DateTimeField(auto_now=True, verbose_name="更新时间") class Meta: verbose_name = "档案文档" verbose_name_plural = verbose_name ordering = ['-upload_time'] def __str__(self): return f"{self.doc_id} - {self.title}" ```

这段代码定义了完整的字段结构,包括文件上传路径的自动按日期归档逻辑(upload_to='archives/%Y/%m/%d/'),这对于海量档案管理至关重要。

系统配置与媒体文件处理

为了确保上传的档案能够被正确存储和访问,需要修改 settings.py 中的静态文件和媒体文件配置。请在文件末尾添加以下配置:

```python import os 媒体文件配置(用于存放用户上传的档案) MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 静态文件配置 STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') ```

同时,必须配置项目的路由以支持开发环境下的媒体文件访问。打开 xiamen_archive_sys/urls.py,修改为:

```python from django.contrib import admin from django.urls import path, re_path from django.conf import settings from django.conf.urls.static import static from django.views.static import serve urlpatterns = [ path('admin/', admin.site.urls), ] 开发环境下提供媒体文件服务 if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 或者使用 re_path 方式兼容旧版本 urlpatterns += [re_path(r'^media/(?P.)$', serve, {'document_root': settings.MEDIA_ROOT}),] ```

后台管理功能深度定制

Django Admin是一个强大的后台系统,我们通过简单的配置即可获得一个功能完备的档案管理界面。打开 archive_core/admin.py,输入以下代码:

```python from django.contrib import admin from .models import ArchiveCategory, ArchiveDocument @admin.register(ArchiveCategory) class ArchiveCategoryAdmin(admin.ModelAdmin): list_display = ('code', 'name', 'created_at') search_fields = ('name', 'code') @admin.register(ArchiveDocument) class ArchiveDocumentAdmin(admin.ModelAdmin): list_display = ('doc_id', 'title', 'category', 'status', 'upload_time') list_filter = ('status', 'category', 'upload_time') search_fields = ('title', 'doc_id', 'description') readonly_fields = ('upload_time', 'updated_time') list_per_page = 20 fieldsets = ( ('基本信息', { 'fields': ('title', 'doc_id', 'category', 'status') }), ('文件内容', { 'fields': ('file', 'description') }), ('时间戳', { 'fields': ('upload_time', 'updated_time'), 'classes': ('collapse',) }), ) ```

此配置实现了列表页的字段展示、右侧筛选栏、顶部搜索框以及表单页的字段分组,极大提升了后台操作效率。

数据库迁移与系统启动

厦门档案管理软件零门槛搭建与实操部署指南

代码编写完成后,需要将模型变更同步到数据库中。Django默认使用SQLite数据库,对于中小型档案管理系统,SQLite无需额外配置即可满足高性能读写需求。

1. 生成并执行迁移文件

在终端依次执行:

```bash python manage.py makemigrations python manage.py migrate ```

2. 创建超级管理员

执行以下命令创建后台登录账号,按照提示输入用户名、邮箱和密码:

```bash python manage.py createsuperuser ```

3. 启动开发服务器

执行以下命令启动服务:

```bash python manage.py runserver 0.0.0.0:8000 ```

看到输出 Starting development server at http://0.0.0.0:8000/ 即表示启动成功。

功能验证与实操测试

最后一步是对系统进行全流程测试,确保所有功能符合“厦门档案管理软件”的业务预期。

1. 访问后台管理系统

打开浏览器,访问 http://127.0.0.1:8000/admin。使用刚才创建的超级管理员账号登录。

2. 创建档案分类

在管理首页点击“档案分类”右侧的“增加”按钮。输入分类名称“人事档案”,分类编码“RS001”,点击“保存”。再创建一个“财务档案”,编码“CW001”。

3. 上传档案文档

点击“档案文档”右侧的“增加”按钮。填写以下信息进行测试:

  • 档案标题:2023年度员工入职登记表
  • 档案编号:RS-2023-001(系统会校验唯一性)
  • 所属分类:选择“人事档案”
  • 状态:选择“归档”
  • 档案文件:点击“选择文件”,上传本地的一个PDF或图片文件
  • 档案描述:包含员工基础信息的登记表

点击“保存”后,系统会自动跳转至列表页,你可以看到刚才上传的记录,并且文件路径会自动按“年/月/日”格式存储。

4. 搜索与筛选测试

在列表页右上角的搜索框输入“RS-2023”,系统应能实时过滤出该条记录。点击右侧的“状态”或“所属分类”筛选器,验证数据过滤功能是否正常。

至此,一套基于Django框架、具备文件上传、分类管理、状态追踪功能的厦门档案管理软件已完全落地。通过以上步骤,你已拥有了一个可扩展、高可用的档案管理系统底座,后续可根据业务需求添加API接口或前端展示页面。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统