一、前期环境准备
1.1 安装基础依赖
根据你的操作系统执行对应操作,所有资源均为官方地址,可直接使用:
- Windows系统:直接下载安装包,
Python:https://www.python.org/ftp/python/3.10.12/python-3.10.12-amd64.exe,安装时必须勾选「Add Python to PATH」选项
Git:https://github.com/git-for-windows/git/releases/download/v2.45.1.windows.1/Git-2.45.1-64-bit.exe
- Ubuntu/Debian系统,打开终端直接执行:
```
sudo apt update && sudo apt install python3 python3-pip git -y
```
安装完成后打开终端/CMD,执行python3 --version,输出3.8及以上版本即安装成功。
二、项目初始化
打开终端,依次执行以下命令,每一步执行完成后再执行下一步:
```
创建项目文件夹并进入
mkdir digital-archive && cd digital-archive
创建虚拟环境隔离依赖,避免污染全局环境
python3 -m venv venv
激活虚拟环境:Windows执行 venv\Scripts\activate
Linux/Mac执行 source venv/bin/activate
安装核心功能依赖
pip install django djangorestframework django-cors-headers openpyxl
初始化项目和借阅功能模块
django-admin startproject archive_system .
python manage.py startapp borrow
```
2.1 修改核心配置
用文本编辑器打开archive_system/settings.py,按如下要求替换对应配置块:
找到INSTALLED_APPS,替换为:
```
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'corsheaders',
'borrow',
]
```
找到MIDDLEWARE,在第一行添加跨域中间件,修改后开头部分为:
```
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
保持原有其他内容不变即可
]
```
在文件末尾添加以下配置:
```
ALLOWED_HOSTS = ['']
CORS_ALLOW_ALL_ORIGINS = True
MEDIA_ROOT = './media/'
MEDIA_URL = '/media/'
```
注意:测试阶段可直接用上述配置,正式上线需将ALLOWED_HOSTS改为你的实际域名,删除CORS_ALLOW_ALL_ORIGINS,配置指定域名白名单,避免安全风险
三、创建借阅功能核心数据模型
打开borrow/models.py,删除原有内容,替换为以下完整可运行代码:
```
from django.db import models
档案实体
class Archive(models.Model):
archive_no = models.CharField(max_length=50, unique=True, verbose_name='档案编号')
name = models.CharField(max_length=200, verbose_name='档案名称')
category = models.CharField(max_length=100, verbose_name='档案类别')
digital_file = models.FileField(upload_to='archives/', verbose_name='数字化文件')
is_open = models.BooleanField(default=False, verbose_name='是否开放借阅')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
def __str__(self):
return self.name
借阅申请单
class BorrowApplication(models.Model):
STATUS_CHOICES = (
(0, '待审核'),
(1, '已通过'),
(2, '已拒绝'),
)
applicant_name = models.CharField(max_length=50, verbose_name='申请人姓名')
applicant_contact = models.CharField(max_length=20, verbose_name='联系电话')
archive = models.ForeignKey(Archive, on_delete=models.CASCADE, verbose_name='申请档案')
reason = models.TextField(verbose_name='借阅原因')
status = models.IntegerField(choices=STATUS_CHOICES, default=0, verbose_name='审核状态')
expire_time = models.DateField(verbose_name='借阅到期时间')
apply_time = models.DateTimeField(auto_now_add=True, verbose_name='申请时间')
def __str__(self):
return f"{self.applicant_name}-{self.archive.name}"
```
执行数据库迁移命令,生成系统所需数据表:
```
python manage.py makemigrations
python manage.py migrate
```
四、配置后台管理与前端页面
4.1 注册后台管理模型

打开borrow/admin.py,删除原有内容,写入以下内容:
```
from django.contrib import admin
from .models import Archive, BorrowApplication
admin.site.register(Archive)
admin.site.register(BorrowApplication)
```
4.2 拉取开箱即用的用户端页面
在项目根目录执行以下命令,拉取适配好的用户端在线借阅页面:
```
mkdir templates && git clone https://gitee.com/longyangxian/archive-borrow-front.git ./templates/borrow
```
修改archive_system/urls.py,替换为以下完整内容:
```
from django.contrib import admin
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
from django.views.generic import TemplateView
urlpatterns = [
path('admin/', admin.site.urls),
path('', TemplateView.as_view(template_name='borrow/index.html'), name='borrow-index'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
```
五、启动使用与正式部署
5.1 创建管理员账号
执行以下命令,按提示输入管理员账号和密码,用于后台上传档案、审核借阅申请:
```
python manage.py createsuperuser
```
5.2 本地启动测试
执行启动命令:
```
python manage.py runserver 0.0.0.0:8000
```
此时即可正常使用,两个入口分别为:
- 用户在线借阅入口:
http://你的服务器IP:8000,用户可搜索档案、提交借阅申请
- 管理员审核后台:
http://你的服务器IP:8000/admin,登录后可管理档案、审核申请
完整操作流程:
- 管理员登录后台,上传需要开放借阅的档案,填写基础信息,设置为开放借阅
- 用户访问首页,找到目标档案,填写个人信息、借阅原因,提交借阅申请
- 管理员后台查看申请,设置借阅有效期,审核通过后,用户即可在线查看或下载档案数字化文件,到期后自动关闭访问权限
5.3 公网正式上线配置
如需部署到公网,执行以下命令即可,配置可直接复制修改使用:
```
安装生产环境服务依赖
pip install gunicorn
后台启动服务
nohup gunicorn -b 0.0.0.0:8000 archive_system.wsgi:application &
```
配置Nginx反向代理,在/etc/nginx/sites-available/digital-archive写入以下配置,替换域名和项目路径后即可启用:
```
server {
listen 80;
server_name 你的域名;
location / {
proxy_pass http://127.0.0.1:8000;
}
location /media/ {
root /你的项目绝对路径/digital-archive/;
}
}
```
安全注意事项:涉密档案禁止部署到公网,正式上线需开启Nginx访问日志,定期清理异常申请,单文件上传限制可根据实际需求在Nginx和Django中调整。