PC端档案软件变龟速?三招让它“飞”回青春期
本指南将使用 Python 的 Web 框架 Django 搭建一套轻量级、高可用的企业档案管理系统。Django 自带管理后台和文件处理功能,非常适合快速落地。首先需要准备好本地开发环境。
1. 安装 Python 虚拟环境
打开终端(Windows 使用 PowerShell 或 CMD,Mac/Linux 使用 Terminal),执行以下命令创建并激活虚拟环境,避免污染全局 Python 库:
```bash 创建名为 venv 的虚拟环境 python -m venv venv Windows 激活环境 venv\Scripts\activate Mac/Linux 激活环境 source venv/bin/activate ```2. 安装 Django 并创建项目
激活环境后,安装 Django 4.2 LTS 版本(长期支持版),并创建项目结构:
```bash 安装 Django pip install django==4.2 创建项目 archive_system django-admin startproject archive_system 进入项目根目录 cd archive_system 创建核心应用 core python manage.py startapp core ```3. 注册应用
打开 archive_system/settings.py 文件,在 INSTALLED_APPS 列表中添加刚刚创建的 core 应用,并配置媒体文件存储路径。这是实现档案上传功能的关键配置:
```python INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'core', 新增这一行 ] 文件上传存储配置 import os MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') ```我们需要定义档案的数据结构。打开 core/models.py 文件,创建 Document 模型。该模型将包含档案标题、文件实体、分类、上传时间及描述信息。
```python from django.db import models class Document(models.Model): CATEGORY_CHOICES = ( ('hr', '人事档案'), ('finance', '财务档案'), ('contract', '合同档案'), ('tech', '技术文档'), ('other', '其他'), ) title = models.CharField(max_length=200, verbose_name='档案标题') file = models.FileField(upload_to='documents/%Y/%m/%d/', verbose_name='档案文件') category = models.CharField(max_length=20, choices=CATEGORY_CHOICES, default='other', verbose_name='档案分类') description = models.TextField(blank=True, null=True, verbose_name='档案描述') uploaded_at = models.DateTimeField(auto_now_add=True, verbose_name='上传时间') class Meta: verbose_name = '档案管理' verbose_name_plural = verbose_name ordering = ['-uploaded_at'] def __str__(self): return self.title ```执行数据库迁移
模型定义完成后,必须执行迁移命令以在数据库中生成对应的表结构:
```bash python manage.py makemigrations python manage.py migrate ```为了处理档案的上传和展示,我们需要编写表单类和视图函数。这种方式逻辑清晰,便于新手理解。
1. 创建表单类
在 core 应用目录下新建 forms.py 文件,创建基于模型的表单,用于前端渲染上传控件:
```python from django import forms from .models import Document class DocumentForm(forms.ModelForm): class Meta: model = Document fields = ('title', 'file', 'category', 'description') widgets = { 'description': forms.Textarea(attrs={'rows': 4}), } ```2. 编写视图函数
打开 core/views.py,编写两个核心视图:upload_view 用于处理文件上传,list_view 用于展示档案列表:
```python from django.shortcuts import render, redirect, reverse from .models import Document from .forms import DocumentForm def upload_view(request): if request.method == 'POST': form = DocumentForm(request.POST, request.FILES) if form.is_valid(): form.save() return redirect(reverse('list_view')) else: form = DocumentForm() return render(request, 'core/upload.html', {'form': form}) def list_view(request): documents = Document.objects.all() return render(request, 'core/list.html', {'documents': documents}) ```我们需要创建 HTML 模板文件来展示界面。首先在 core 目录下创建 templates 文件夹,并在其中再创建一个 core 子文件夹(即 core/templates/core/)。
1. 创建上传页面

在 core/templates/core/ 目录下新建 upload.html。注意表单必须包含 enctype="multipart/form-data" 属性,否则文件无法上传:
```html2. 创建列表页面
在同级目录下新建 list.html,用于展示所有已上传的档案,并提供下载链接:
```html| 标题 | 分类 | 上传时间 | 操作 |
|---|---|---|---|
| {{ doc.title }} | {{ doc.get_category_display }} | {{ doc.uploaded_at|date:"Y-m-d H:i" }} | 下载 |
| 暂无档案数据 | |||
配置 URL 路由,将 URL 路径映射到视图函数。我们需要配置项目级路由和应用级路由,并确保开发服务器能提供媒体文件服务。
1. 配置应用路由
在 core 目录下新建 urls.py 文件:
```python from django.urls import path from . import views urlpatterns = [ path('upload/', views.upload_view, name='upload_view'), path('list/', views.list_view, name='list_view'), ] ```2. 配置项目主路由
打开 archive_system/urls.py,引入应用路由并配置静态文件服务:
```python from django.contrib import admin from django.urls import path, include from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), path('', include('core.urls')), 将应用路由包含进来 ] 仅在开发环境下提供媒体文件服务 if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ```所有代码已就绪,现在启动服务器进行测试。
1. 创建超级管理员(可选)
如果需要通过 Django Admin 后台管理数据,执行以下命令创建管理员账号:
```bash python manage.py createsuperuser 按照提示输入用户名、邮箱和密码 ```若要使用 Admin 后台管理档案,需在 core/admin.py 中注册模型:
```python from django.contrib import admin from .models import Document admin.site.register(Document) ```2. 启动开发服务器
执行以下命令启动服务:
```bash python manage.py runserver ```3. 访问与测试
打开浏览器,访问 http://127.0.0.1:8000/list/。你将看到档案列表页面。点击“上传新档案”,填写标题、选择本地文件、选择分类后提交。系统会自动跳转回列表页,显示刚才上传的记录。点击“下载”按钮,即可将文件从服务器取回。
至此,一个具备文件上传、分类存储、列表展示和下载功能的纯干货企业档案管理系统已完全落地。该系统基于 Django ORM,后续只需更换数据库配置(如切换至 PostgreSQL)即可直接用于生产环境。
PC端档案软件变龟速?三招让它“飞”回青春期