一、开发运行环境准备
本系统采用轻量技术栈,普通Windows电脑即可运行,不需要额外配置复杂数据库,零门槛落地,按照以下步骤准备环境:
- 下载Python 3.10安装包,直接访问地址下载:
https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe
- 安装时必须勾选「Add Python 3.10 to PATH」选项,否则后续命令无法运行,使用默认安装配置即可完成安装
- 安装完成后按下Win+R输入cmd打开命令提示符,执行以下命令安装项目依赖:
```
pip install django==4.2 django-filter pillow django-import-export==3.3.0
```
二、项目初始化与配置
在命令提示符中,先切换到你要存放项目的磁盘目录,比如D盘,依次执行以下命令:
```
d:
mkdir award-archive
cd award-archive
django-admin startproject arch_core .
python manage.py startapp award_manage
```
接下来修改项目配置,打开arch_core/settings.py,依次修改以下内容,所有内容可直接复制替换对应模块:
找到INSTALLED_APPS数组,替换为以下内容:
```
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'import_export',
'award_manage',
]
```
找到ALLOWED_HOSTS,修改为:
```
ALLOWED_HOSTS = [""]
```
在文件末尾添加以下媒体配置,用于存储奖状扫描件:
```
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'
```
三、核心档案模型搭建
打开award_manage/models.py,删除原有内容,复制粘贴以下完整代码,这就是奖状档案的核心数据结构:
```
from django.db import models
class AwardArchive(models.Model):
award_name = models.CharField(max_length=200, verbose_name='奖状名称')
winner = models.CharField(max_length=100, verbose_name='获奖人')
winner_department = models.CharField(max_length=100, verbose_name='所属部门/单位')
award_level = models.CharField(max_length=50, verbose_name='奖项级别', choices=[
('国家级', '国家级'), ('省级', '省级'), ('市级', '市级'), ('校级/单位级', '校级/单位级')
])
award_date = models.DateField(verbose_name='获奖日期')
award_scan = models.ImageField(upload_to='award_scans/', verbose_name='奖状扫描件')
entry_date = models.DateTimeField(auto_now_add=True, verbose_name='录入时间')
class Meta:
verbose_name = '奖状档案'
verbose_name_plural = verbose_name
ordering = ['-award_date']
def __str__(self):
return f"{self.winner}-{self.award_name}"
```

接下来执行数据库迁移,创建数据表,依次执行命令:
```
python manage.py makemigrations
python manage.py migrate
```
然后创建后台管理员账号,执行命令后按照提示输入用户名、密码(密码至少8位),邮箱可留空:
```
python manage.py createsuperuser
```
四、后台管理与检索功能配置
先配置项目路由,打开arch_core/urls.py,替换所有内容为以下代码:
```
from django.contrib import admin
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
```
然后把档案模型注册到后台,开启检索、筛选和批量导入导出功能,打开award_manage/admin.py,替换所有内容为:
```
from django.contrib import admin
from import_export.admin import ImportExportModelAdmin
from .models import AwardArchive
@admin.register(AwardArchive)
class AwardArchiveAdmin(ImportExportModelAdmin):
list_display = ('award_name', 'winner', 'winner_department', 'award_level', 'award_date', 'entry_date')
list_filter = ('award_level', 'award_date', 'winner_department')
search_fields = ('award_name', 'winner')
```
五、启动使用与日常维护
1. 启动服务与登录
执行以下命令启动服务:
```
python manage.py runserver 0.0.0.0:8000
```
打开浏览器输入http://127.0.0.1:8000/admin,输入刚才创建的管理员账号密码即可登录后台。
2. 档案录入与查询操作
- 单条录入:登录后点击「奖状档案」右侧的「添加」按钮,依次填写信息、上传扫描件,点击保存即可完成录入
- 批量导入:点击列表页上方的「导入」按钮,下载示例模板,按照模板格式整理所有奖状数据,上传Excel即可一次性完成批量导入
- 检索查询:支持三种查询方式,顶部搜索框可模糊搜索获奖人或奖状名称,右侧筛选栏可按奖项级别、单位、年份筛选,点击任意档案即可查看、下载原扫描件
3. 长期部署与备份
如果需要单位内部长期使用,可设置开机自动启动,步骤如下:
- 新建文本文档,输入内容:
cd /d D:\award-archive && python manage.py runserver 0.0.0.0:8000,保存为start-archive.bat
- 按下Win+R输入
shell:startup回车,将批处理文件放入打开的启动文件夹中
- 重启电脑后服务自动启动,单位内其他同事通过你的电脑IP即可访问查询
- 每月备份一次整个
award-archive项目文件夹,即可保证所有数据不会丢失