零成本搭建适配中小机构的导游证档案管理软件实操指南
一、本地环境准备(Linux/macOS直接用,Windows需WSL2)
本指南无需复杂服务器,仅需安装Docker即可快速部署,全程复制命令即可操作:
1. 安装Docker运行环境
Linux用户执行以下命令,macOS用户可前往Docker官网下载对应版本(https://download.docker.com/mac/stable/Docker.dmg):
``` curl -fsSL https://get.docker.com | bash sudo usermod -aG docker $USER newgrp docker ```2. 验证安装成功
执行命令,若输出Docker版本号则安装完成:
``` docker --version docker compose version ```Windows用户需先开启WSL2,安装Ubuntu子系统,后续操作全部在WSL终端中执行。
二、部署导游证档案管理系统
1. 创建部署目录并进入
终端执行以下命令生成专属目录:
``` mkdir -p ~/tour-guide-archive && cd ~/tour-guide-archive ```2. 编写部署配置文件
直接复制以下完整内容,生成docker-compose.yml文件(不要手动修改缩进):
``` version: '3.8' services: app: image: python:3.9-slim volumes: - ./data:/app/data working_dir: /app command: > bash -c " pip install flask sqlalchemy flask-cors && echo '初始化完成,启动服务...' && cat > app.py << 'EOF' from flask import Flask, request, jsonify, render_template_string from sqlalchemy import create_engine, Column, Integer, String, Date from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker app = Flask(__name__) Base = declarative_base() class GuideArchive(Base): __tablename__ = 'guides' id = Column(Integer, primary_key=True) name = Column(String(50), nullable=False) license_no = Column(String(20), nullable=False, unique=True) issue_date = Column(Date, nullable=False) expiration_date = Column(Date, nullable=False) status = Column(String(20), default='有效') engine = create_engine('sqlite:///data/archive.db') Base.metadata.create_all(engine) Session = sessionmaker(bind=engine) HTML_TEMPLATE = '''已登记档案列表
| ID | 姓名 | 证号 | 发证日期 | 有效期 | 状态 |
|---|---|---|---|---|---|
| {{g.id}} | {{g.name}} | {{g.license_no}} | {{g.issue_date}} | {{g.expiration_date}} | {{g.status}} |
3. 启动服务
执行以下命令启动系统,等待10秒即可:
``` docker compose up -d ```
验证启动:执行`docker compose logs`,看到`Running on http://0.0.0.0:5000`即为成功。若无法访问,执行`sudo ufw allow 5000`放开端口。
三、核心日常操作
1. 新增导游证档案
打开浏览器访问`http://localhost:5000`,在表单中填写姓名、导游证号、发证日期、有效期,点击【添加档案】即可完成录入,系统自动校验证号唯一性。
2. 查看所有档案
刷新页面即可自动更新档案列表,支持快速查看有效期、状态,无需额外操作。
3. 备份档案数据
执行以下命令生成带日期的备份文件,自动保存到当前用户根目录:
``` docker compose exec app cp /app/data/archive.db /app/backup_$(date +%Y%m%d).db docker compose cp app:/app/backup_.db ~/ ```绝对不要删除部署目录下的data文件夹,否则所有档案数据会丢失。
4. 启停服务
停止服务:`docker compose down`;重新启动:`docker compose up -d`,无需重新部署配置。
若需修改端口(如5000被占用),修改docker-compose.yml中`ports`行的`5000:5000`为`5001:5000`,再执行启动命令即可。