从零搭建可检索古代档案管理系统:从环境配置到上线实操全指南

一、环境准备

本系统为轻量可定制方案,适合博物馆、地方文史机构使用,不需要额外独立部署数据库,全流程命令可直接复制执行,支持Windows、Mac、Linux全平台。

1.1 安装核心依赖

打开终端(Windows用PowerShell、Mac/Linux用自带终端),执行对应命令安装Python环境:

``` Windows系统 winget install Python.Python.3.10 Mac系统 brew install python@3.10 Debian/Ubuntu系统 sudo apt update && sudo apt install python3.10 python3-pip -y ```

安装完成后执行以下命令安装开发依赖,若下载慢可在末尾加参数 `-i https://pypi.tuna.tsinghua.edu.cn/simple`:

``` pip install django==4.2 django-filter django-ckeditor ```

二、项目初始化与核心配置

2.1 创建项目与核心模型

终端依次执行以下命令创建项目结构:

``` django-admin startproject ancient_archive && cd ancient_archive && python manage.py startapp archive ```

打开 `ancient_archive/settings.py`,找到 `INSTALLED_APPS` 配置项,替换为以下完整内容,底部新增媒体配置:

``` INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 新增以下两行 'ckeditor', 'archive', ] 底部新增媒体配置,用于存储档案扫描件 MEDIA_URL = '/media/' MEDIA_ROOT = BASE_DIR / 'media' ```

打开 `archive/models.py`,删除原有内容,粘贴以下完整的古代档案模型代码:

``` from django.db import models from ckeditor.fields import RichTextField class AncientArchive(models.Model): archive_no = models.CharField(max_length=50, verbose_name='档案编号', unique=True) name = models.CharField(max_length=200, verbose_name='档案名称') dynasty = models.CharField(max_length=50, verbose_name='所属朝代') year = models.IntegerField(verbose_name='具体年份', blank=True, null=True) material = models.CharField(max_length=50, verbose_name='制作材质') collection_location = models.CharField(max_length=100, verbose_name='收藏地点') summary = RichTextField(verbose_name='内容提要') scan_file = models.FileField(upload_to='scans/', verbose_name='扫描件', blank=True, null=True) create_time = models.DateTimeField(auto_now_add=True, verbose_name='录入时间') update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间) class Meta: verbose_name = '古代档案' verbose_name_plural = verbose_name def __str__(self): return self.archive_no + " " + self.name ```

2.2 初始化数据库与后台账号

终端依次执行以下命令,生成数据库表并创建管理员账号:

``` python manage.py makemigrations python manage.py migrate python manage.py createsuperuser ```

执行 `createsuperuser` 后,按提示依次输入用户名、邮箱、密码(密码要求8位以上),请记住账号密码,后续登录后台使用。

打开 `archive/admin.py`,替换为以下代码,将档案模型注册到后台管理系统:

``` from django.contrib import admin from .models import AncientArchive @admin.register(AncientArchive) class AncientArchiveAdmin(admin.ModelAdmin): list_display = ('archive_no', 'name', 'dynasty', 'collection_location', 'update_time') search_fields = ('archive_no', 'name', 'dynasty', 'collection_location') list_filter = ('dynasty', 'material', 'collection_location') ```

打开 `ancient_archive/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) ```

三、添加公开检索页面(可选)

如果需要对外提供公开检索服务(不需要登录后台),按以下步骤操作:

从零搭建可检索古代档案管理系统:从环境配置到上线实操全指南

打开 `archive/views.py`,粘贴以下代码:

``` from django_filters.views import SearchFilterView from .models import AncientArchive class ArchiveSearchView(SearchFilterView): model = AncientArchive template_name = 'search.html' context_object_name = 'archives' search_fields = ['name', 'archive_no', 'dynasty'] ```

在 `archive` 目录下新建 `templates` 文件夹,在文件夹内新建 `search.html`,粘贴以下代码:

``` 古代档案检索
古代档案检索
{% for archive in archives %}

{{ archive.name }}({{ archive.dynasty }})

档案编号:{{ archive.archive_no }} | 收藏地点:{{ archive.collection_location }} | 材质:{{ archive.material }}

{{ archive.summary|safe }}

{% if archive.scan_file %}

查看扫描件

{% endif %}
{% empty %}

未找到符合条件的档案

{% endfor %}
```

最后在 `ancient_archive/urls.py` 的 `urlpatterns` 中添加两行代码,最终的urlpatterns变为:

``` from archive.views import ArchiveSearchView urlpatterns = [ path('admin/', admin.site.urls), path('', ArchiveSearchView.as_view(), name='search'), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ```

四、启动使用与常见问题解决

终端执行启动命令:

``` python manage.py runserver 0.0.0.0:8000 ```

启动后即可访问:

  • 后台录入管理:访问 `http://你的IP:8000/admin/`,输入管理员账号登录,即可新增、编辑、删除档案,后台自带筛选、检索功能。
  • 公开检索:配置了公开页面的话,直接访问 `http://你的IP:8000/` 即可使用。

常见卡壳问题解决:

  • pip安装依赖慢:所有pip命令后加 `-i https://pypi.tuna.tsinghua.edu.cn/simple` 即可加速。
  • 访问扫描件显示404:检查settings.py的MEDIA配置是否正确,公网部署时检查nginx的media路径配置是否和项目实际路径一致。
  • 公网无法访问:检查服务器防火墙、云服务器安全组是否放行8000端口,部署后需要放行对应端口。

五、公网部署(可选)

需要长期运行的话,安装gunicorn后台启动,执行以下命令:

``` pip install gunicorn gunicorn ancient_archive.wsgi:application -b 0.0.0.0:8000 -D ```

如果绑定域名,添加以下nginx配置即可:

``` server { listen 80; server_name 你的绑定域名; location / { proxy_pass http://127.0.0.1:8000; } location /media/ { alias /项目绝对路径/ancient_archive/media/; } location /static/ { alias /项目绝对路径/ancient_archive/static/; } } ```
AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

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

微信扫码关注安答联动

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

安答联动档案管理系统