一、前期环境准备
1.1 安装运行依赖
本方案基于Python+Django开发,无需额外安装数据库,零门槛部署,要求环境为Python 3.8及以上版本,执行以下命令直接安装所有依赖:
国内用户推荐使用清华镜像安装,避免下载失败:
```
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django==4.2 django-cors-headers gunicorn
```
验证安装结果:执行django-admin --version,输出4.2.x即为安装成功
1.2 创建项目结构
打开终端命令行,依次执行以下命令,生成项目目录结构:
```
django-admin startproject group_archive
cd group_archive
python manage.py startapp archive
mkdir -p media/archives
```
二、项目基础配置修改
打开项目根目录下的group_archive/settings.py,按以下要求修改对应配置:
2.1 修改核心配置项
找到INSTALLED_APPS配置项,替换为以下内容:
```
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'corsheaders',
'archive',
]
```
找到MIDDLEWARE配置项,在最顶部加入跨域中间件,最终开头部分为:
```
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
剩余原有配置保持不变
]
```
在配置文件末尾追加以下内容:
```
CORS_ALLOW_ALL_ORIGINS = True
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'
ALLOWED_HOSTS = ['']
```
正式部署时可将ALLOWED_HOSTS = ['']替换为集团实际访问域名,提升安全性
三、核心档案数据模型设计
打开archive/models.py,删除原有内容,替换为以下完整可运行代码:
```
from django.db import models
档案分类表
class ArchiveCategory(models.Model):
name = models.CharField(max_length=100, verbose_name='分类名称')
created_at = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
class Meta:
verbose_name = '档案分类'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
集团档案主表
class GroupArchive(models.Model):
archive_code = models.CharField(max_length=50, unique=True, verbose_name='档案编号')
name = models.CharField(max_length=200, verbose_name='档案名称')
category = models.ForeignKey(ArchiveCategory, on_delete=models.CASCADE, verbose_name='所属分类')
uploader = models.CharField(max_length=50, verbose_name='上传人')
department = models.CharField(max_length=100, verbose_name='所属部门')
file = models.FileField(upload_to='archives/%Y/%m', verbose_name='档案文件')
remark = models.TextField(blank=True, null=True, verbose_name='备注')
created_at = models.DateTimeField(auto_now_add=True, verbose_name='上传时间')
class Meta:
verbose_name = '集团档案'
verbose_name_plural = verbose_name
def __str__(self):
return f"{self.archive_code}-{self.name}"
```

执行数据库迁移命令,生成对应数据表:
```
python manage.py makemigrations
python manage.py migrate
```
四、配置后台管理系统
本方案直接使用Django自带的后台管理系统,满足集团档案管理的增删改查、附件上传下载需求,无需额外开发前端。打开archive/admin.py,替换为以下代码:
```
from django.contrib import admin
from .models import ArchiveCategory, GroupArchive
admin.site.register(ArchiveCategory)
admin.site.register(GroupArchive)
```
执行命令创建超级管理员账号,按终端提示输入用户名、邮箱、密码即可:
```
python manage.py createsuperuser
```
注意:密码要求8位以上,不能为纯数字,否则无法创建成功
五、启动验证与使用
执行启动命令:
```
python manage.py runserver 0.0.0.0:8000
```
启动成功后,在浏览器访问http://你的服务器IP:8000/admin,输入刚才创建的超级管理员账号登录,即可按以下流程使用:
- 第一步:点击左侧「档案分类」-「添加」,创建对应分类,比如人事档案、合同档案、项目档案等
- 第二步:点击「集团档案」-「添加」,填写档案编号、名称,选择对应分类,填写上传人、所属部门,上传档案文件,点击保存即可完成归档
- 日常管理支持按名称、编号、分类搜索档案,点击档案对应的文件链接即可直接下载,支持随时修改、删除档案信息
六、配置开机自启(长期部署用)
如果需要长期在集团内网运行,配置systemd实现开机自启,步骤如下:
6.1 创建服务配置文件
在/etc/systemd/system/目录下新建文件group_archive.service,写入以下内容(注意替换为你自己的项目路径和gunicorn路径):
```
[Unit]
Description=Group Archive Management System
After=network.target
[Service]
User=root
WorkingDirectory=/opt/group_archive
ExecStart=/usr/local/bin/gunicorn -w 4 -b 0.0.0.0:8000 group_archive.wsgi:application
Restart=always
[Install]
WantedBy=multi-user.target
```
6.2 启动服务并开启自启
依次执行以下命令:
```
systemctl daemon-reload
systemctl start group_archive
systemctl enable group_archive
```
配置完成后,服务器重启会自动启动档案系统,直接访问对应IP端口即可使用。