网站首页/ 信息中心/ 档案百科/

注册会计师证档案管理软件搭建与配置实操指南

发布时间:2026年08月19日 14:35:20 浏览量:0

一、环境准备与核心组件选择

在开始搭建前,你需要准备一台运行Linux的服务器,配置不低于2核4G。我们将使用Nginx、MySQL和Python作为核心技术栈。

1.1 服务器环境初始化

通过SSH连接到你的服务器。执行以下命令更新系统并安装基础工具:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget vim git unzip

1.2 数据库安装与配置

我们选择MySQL 8.0作为数据库。安装命令如下:

sudo apt install -y mysql-server mysql-client

安装完成后,运行安全配置脚本:

sudo mysql_secure_installation

按照提示设置root密码,并选择默认的安全选项。接着登录MySQL,创建专用数据库和用户:

sudo mysql -u root -p

在MySQL命令行中执行:

CREATE DATABASE cpa_archive CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'cpa_admin'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON cpa_archive. TO 'cpa_admin'@'localhost';
FLUSH PRIVILEGES;
EXIT;

注意:请务必将'YourStrongPassword123!'替换为你自己的高强度密码。

二、后端应用部署

我们使用Django框架开发后端,因为它能快速构建安全、可维护的管理系统。

2.1 Python环境与依赖安装

安装Python 3.9和虚拟环境工具:

sudo apt install -y python3.9 python3.9-venv python3-pip

创建项目目录并初始化虚拟环境:

mkdir -p ~/cpa_project && cd ~/cpa_project
python3.9 -m venv venv
source venv/bin/activate

安装必要的Python包:

pip install django==4.2 pillow mysqlclient django-cors-headers

2.2 Django项目初始化与核心配置

创建Django项目和应用:

django-admin startproject cpa_backend .
python manage.py startapp archive

编辑cpa_backend/settings.py文件,找到DATABASES部分,修改为:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'cpa_archive',
'USER': 'cpa_admin',
'PASSWORD': 'YourStrongPassword123!',
'HOST': 'localhost',
'PORT': '3306',
}
}

在INSTALLED_APPS列表中添加'archive'和'corsheaders'。在MIDDLEWARE列表的开头添加'corsheaders.middleware.CorsMiddleware'。接着设置允许的域名和文件存储路径:

ALLOWED_HOSTS = ['your_server_ip', 'localhost']
CORS_ALLOW_ALL_ORIGINS = True
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

2.3 数据模型设计与迁移

编辑archive/models.py,定义证书档案的核心模型:

from django.db import models
from django.contrib.auth.models import User
class CertificateArchive(models.Model):
CERT_STATUS = (
('valid', '有效'),
('expired', '已过期'),
('suspended', '暂停'),
)
holder_name = models.CharField(max_length=100, verbose_name='持证人姓名')
certificate_number = models.CharField(max_length=50, unique=True, verbose_name='证书编号')
issue_date = models.DateField(verbose_name='发证日期')
expiry_date = models.DateField(verbose_name='到期日期')
status = models.CharField(max_length=20, choices=CERT_STATUS, default='valid', verbose_name='状态')
digital_copy = models.FileField(upload_to='certificates/', verbose_name='数字副本', null=True, blank=True)
remarks = models.TextField(verbose_name='备注', blank=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
db_table = 'certificate_archive'
ordering = ['-created_at']
def __str__(self):
return f"{self.holder_name} - {self.certificate_number}"

生成并执行数据库迁移:

python manage.py makemigrations archive
python manage.py migrate

2.4 管理员界面与API接口配置

编辑archive/admin.py,注册模型到管理后台:

from django.contrib import admin
from .models import CertificateArchive
@admin.register(CertificateArchive)
class CertificateArchiveAdmin(admin.ModelAdmin):
list_display = ('holder_name', 'certificate_number', 'issue_date', 'expiry_date', 'status')
search_fields = ('holder_name', 'certificate_number')
list_filter = ('status', 'issue_date')
date_hierarchy = 'issue_date'

创建超级用户以访问管理后台:

python manage.py createsuperuser

按照提示输入用户名、邮箱和密码。

接下来,为前端提供数据接口。编辑archive/views.py

from rest_framework.decorators import api_view
from rest_framework.response import Response
from .models import CertificateArchive
from .serializers import CertificateArchiveSerializer
from rest_framework import status
@api_view(['GET'])
def certificate_list(request):
certificates = CertificateArchive.objects.all()
serializer = CertificateArchiveSerializer(certificates, many=True)
return Response(serializer.data)

创建archive/serializers.py文件:

注册会计师证档案管理软件搭建与配置实操指南

from rest_framework import serializers
from .models import CertificateArchive
class CertificateArchiveSerializer(serializers.ModelSerializer):
class Meta:
model = CertificateArchive
fields = '__all__'

配置URL路由。编辑archive/urls.py(如不存在则创建):

from django.urls import path
from . import views
urlpatterns = [
path('api/certificates/', views.certificate_list, name='certificate_list'),
]

在项目主cpa_backend/urls.py中包含此路由:

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('archive/', include('archive.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

三、前端界面与Nginx配置

我们使用一个轻量级的前端模板来快速构建管理界面。

3.1 静态文件收集与配置

在Django设置文件中,确保STATIC配置正确:

STATIC_URL = 'static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

运行命令收集静态文件:

python manage.py collectstatic

所有静态文件将被收集到staticfiles目录。

3.2 Nginx安装与反向代理配置

安装Nginx:

sudo apt install -y nginx

创建Nginx配置文件:

sudo vim /etc/nginx/sites-available/cpa_archive

将以下配置完整复制进去,注意将your_server_ip替换为你的实际服务器IP:

server {
listen 80;
server_name your_server_ip;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static/ {
alias /home/your_username/cpa_project/staticfiles/;
expires 30d;
}
location /media/ {
alias /home/your_username/cpa_project/media/;
expires 30d;
}
}

启用该配置并重启Nginx:

sudo ln -s /etc/nginx/sites-available/cpa_archive /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

四、系统启动与安全加固

4.1 启动Django应用服务

使用Gunicorn作为生产环境的WSGI服务器。首先在虚拟环境中安装:

pip install gunicorn

创建一个Gunicorn服务文件:

sudo vim /etc/systemd/system/gunicorn_cpa.service

写入以下内容,注意将your_username替换为你的系统用户名:

[Unit]
Description=Gunicorn service for CPA Archive
After=network.target
[Service]
User=your_username
Group=www-data
WorkingDirectory=/home/your_username/cpa_project
Environment="PATH=/home/your_username/cpa_project/venv/bin"
ExecStart=/home/your_username/cpa_project/venv/bin/gunicorn --workers 3 --bind 127.0.0.1:8000 cpa_backend.wsgi:application
[Install]
WantedBy=multi-user.target

启动并启用Gunicorn服务:

sudo systemctl start gunicorn_cpa
sudo systemctl enable gunicorn_cpa

4.2 基础安全设置

配置防火墙,仅开放必要端口:

sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw enable

为Django设置更强的密钥。编辑settings.py,找到SECRET_KEY,使用以下命令生成一个新的密钥并替换:

python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"

在管理后台添加操作日志功能。编辑archive/models.py,添加一个简单的日志模型:

class OperationLog(models.Model):
user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
action = models.CharField(max_length=200, verbose_name='操作内容')
timestamp = models.DateTimeField(auto_now_add=True)
ip_address = models.GenericIPAddressField(null=True, blank=True)

执行迁移以创建日志表:

python manage.py makemigrations && python manage.py migrate

4.3 系统访问与验证

现在,你的系统已经部署完成。在浏览器中访问以下地址:

登录管理后台后,你可以:

至此,一个具备基础增删改查、文件上传和API接口的注册会计师证档案管理软件已部署完毕。后续可根据需要进一步开发证书到期自动提醒、批量导入导出等高级功能。

太原档案数字化服务流程是怎样的?大概需要多少钱?
太原档案数字化服务流程是怎样的?大概需要多少钱?
太原档案数字化服务通常包含需求分析、方案制定、现场整理、扫描加工、数据挂接、验收交付等核心流程,费用根据档案数量、纸张状况、数字化标准等因素综合计算,2026年市场价格范围大致在每页0.5元至2元之间...
2026年08月19日 14:35:20
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818