手把手教你用Python搭建实物档案管理系统

环境搭建与项目初始化

在开始构建实物档案管理系统之前,我们需要准备一个干净且独立的Python开发环境。本系统基于Python 3.9和Django 4.2 LTS框架开发,数据库使用SQLite,无需额外安装数据库服务,确保零门槛快速启动。

在终端中执行以下命令创建项目目录并激活虚拟环境:

 创建项目文件夹
mkdir archive_system
cd archive_system
创建虚拟环境
python -m venv venv
激活虚拟环境(Windows用户)
venv\Scripts\activate
激活虚拟环境(Mac/Linux用户)
source venv/bin/activate

环境激活后,安装Django框架。为了确保稳定性,我们指定具体的版本号:

pip install django==4.2.7

接下来,初始化Django项目和应用。我们将项目命名为config,核心功能应用命名为core

 创建Django项目
django-admin startproject config .
创建核心应用
python manage.py startapp core

项目创建完成后,必须将core应用注册到项目中。打开config/settings.py文件,找到INSTALLED_APPS列表,在末尾添加'core'

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'core',   新增这一行
]

设计实物档案管理数据模型

数据模型是系统的核心。对于实物档案管理,我们需要记录档案的名称、编号、物理存放位置、状态以及入库时间。打开core/models.py文件,将原有代码替换为以下完整代码:

from django.db import models
class ArchiveItem(models.Model):
STATUS_CHOICES = [
('in_stock', '在库'),
('borrowed', '借出'),
('lost', '遗失'),
('maintenance', '维护中'),
]
档案名称
name = models.CharField(max_length=200, verbose_name="档案名称")
档案唯一编号(如条形码或RFID码)
archive_code = models.CharField(max_length=50, unique=True, verbose_name="档案编号")
档案分类
category = models.CharField(max_length=100, verbose_name="档案分类")
物理存放位置(如:A区-01架-02层)
physical_location = models.CharField(max_length=100, verbose_name="物理位置")
档案当前状态
status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='in_stock', verbose_name="状态")
入库时间
entry_date = models.DateTimeField(auto_now_add=True, verbose_name="入库时间")
备注
remarks = models.TextField(blank=True, null=True, verbose_name="备注")
class Meta:
verbose_name = "实物档案"
verbose_name_plural = "实物档案"
ordering = ['-entry_date']
def __str__(self):
return f"{self.archive_code} - {self.name}"

模型定义完成后,需要执行数据库迁移命令以生成对应的数据表。在终端依次执行:

python manage.py makemigrations
python manage.py migrate

配置后台管理界面

Django自带强大的后台管理系统,我们只需进行简单配置即可实现档案的增删改查。为了提升操作效率,我们将配置列表展示字段、搜索功能和筛选器。

打开core/admin.py文件,输入以下代码:

手把手教你用Python搭建实物档案管理系统

from django.contrib import admin
from .models import ArchiveItem
@admin.register(ArchiveItem)
class ArchiveItemAdmin(admin.ModelAdmin):
列表页展示的字段
list_display = ('archive_code', 'name', 'category', 'physical_location', 'status', 'entry_date')
每页显示的记录数
list_per_page = 20
启用顶部搜索框,支持按编号、名称和位置搜索
search_fields = ('archive_code', 'name', 'physical_location')
启用右侧筛选栏,可按状态和分类快速过滤
list_filter = ('status', 'category', 'entry_date')
点击字段即可进入编辑页面
list_display_links = ('archive_code', 'name')
在详情页中,将字段分组显示,使界面更整洁
fieldsets = (
('基本信息', {
'fields': ('name', 'archive_code', 'category')
}),
('管理信息', {
'fields': ('physical_location', 'status', 'remarks')
}),
)

创建超级管理员与运行服务

配置完成后,需要创建一个超级管理员账号来登录后台。执行以下命令,按照提示输入用户名、邮箱和密码:

python manage.py createsuperuser

注意:输入密码时屏幕不会显示字符,这是正常的安全机制,请确保密码强度足够并牢记。

现在,启动开发服务器:

python manage.py runserver

服务器默认运行在http://127.0.0.1:8000。打开浏览器访问该地址,你将看到Django的欢迎页面。点击页面右上角的“Log in”或者直接访问http://127.0.0.1:8000/admin,使用刚才创建的超级管理员账号登录。

系统实操演练

登录成功后,你将看到管理后台首页。页面中已经自动出现了“Core”模块下的“实物档案”分组。

步骤一:录入新档案

  • 点击“实物档案”旁边的“+ 增加”按钮。
  • 在“基本信息”区域,输入档案名称(例如:2023年度技术合同),档案编号(例如:TC-2023-001),分类(例如:技术文档)。
  • 在“管理信息”区域,输入物理位置(例如:A区-01架-03层),状态保持默认“在库”,如有需要填写备注。
  • 点击“保存”按钮。系统会自动跳转回列表页,并显示刚才录入的档案信息。

步骤二:快速检索与定位

  • 在列表页顶部的搜索框中输入“TC-2023”或“技术合同”,按下回车键。
  • 系统将实时过滤显示匹配的记录。这对于拥有大量档案的场景非常实用。

步骤三:状态流转(借出操作)

  • 找到需要借出的档案记录,点击“档案编号”进入详情页。
  • 将“状态”字段从“在库”修改为“借出”。
  • 在“备注”中添加借出人信息和借出时间,例如“张三于2023-10-27借出”。
  • 点击“保存”。此时列表页该档案的状态列会自动更新为红色的“借出”标签(根据Django默认样式),便于管理员一目了然地掌握库存动态。

步骤四:利用筛选器盘点

  • 在列表页右侧,点击“状态”筛选器下的“遗失”。
  • 系统将仅显示所有状态为遗失的档案。配合“物理位置”筛选器,可以快速定位特定区域的特定资产情况,极大提高了盘点效率。

至此,一个具备完整增删改查、搜索、筛选和状态管理功能的实物档案管理系统已经完全落地。通过Python和Django的高效结合,我们无需编写复杂的前端代码即可快速交付一个可用的管理工具,完全满足中小型团队对实物档案数字化管理的需求。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

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

微信扫码关注安答联动

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

安答联动档案管理系统