# 期末大作业 **Repository Path**: focus-on-cooking/final-assignment ## Basic Information - **Project Name**: 期末大作业 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-17 - **Last Updated**: 2026-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ❤️ 恋爱记录网站 - 使用说明 ## 📁 项目结构 ``` 期末大作业/ ├── app.py # Flask 后端服务 ├── index.html # 前端页面 ├── love.db # SQLite 数据库文件(自动生成) └── requirements.txt # Python 依赖列表 ``` --- ## 🚀 快速开始 ### 1. 安装依赖 确保已安装 Python 3.x,然后安装所需依赖: ```bash pip install Flask Flask-SQLAlchemy Flask-CORS ``` ### 2. 启动后端服务 ```bash python app.py ``` 启动成功后会显示: ``` [START] Server starting... [INFO] API URL: http://localhost:5000/api [RUN] Love story backend service is running... * Running on http://127.0.0.1:5000 * Running on http://192.168.xxx.xxx:5000 Press CTRL+C to quit ``` ### 3. 打开前端页面 直接在浏览器中打开 `index.html` 文件即可。 --- ## 🔐 管理员登录 ### 默认账号 - **用户名**: `admin` - **密码**: `admin123` ### 登录方式 点击页面右上角的 **🔐 管理员登录** 按钮,输入用户名和密码即可。 ### 登录用途 登录后可以执行以下操作: - 删除留言 - 删除照片 - 删除日志 - 删除纪念日 - 更新日志内容 - 修改恋爱起始时间 - 添加新的纪念日 --- ## 📱 功能说明 ### 1. 💕 情侣简介 页面顶部展示情侣头像、名字和爱情宣言。 ### 2. ⏱️ 恋爱天数统计 - 实时显示在一起的时间(天/小时/分/秒) - 点击 **⚙️ 设置时间** 按钮可修改恋爱起始日期(需登录) ### 3. 🎂 纪念日倒计时 - 显示所有添加的纪念日 - 实时计算距离每个纪念日的天数 - 纪念日当天显示「🎉 今天就是!」 - 点击 **+ 添加纪念日** 按钮添加新纪念日(需登录) - 鼠标悬停在纪念日卡片上可看到删除按钮 ### 4. 📝 恋爱日志 - 填写标题和内容后保存日志 - 点击日志卡片可查看详情 - 鼠标悬停可看到编辑和删除按钮(需登录) ### 5. 📸 相册功能 - 点击 **📷 上传照片** 按钮上传图片 - 支持批量上传 - 上传后可添加照片说明 - 鼠标悬停在照片卡片上可看到删除按钮(需登录) ### 6. 💌 留言板 - 填写昵称和留言内容后发表 - 鼠标悬停在留言卡片上可看到删除按钮(需登录) --- ## 📡 API 接口文档 ### 基础地址 所有 API 接口前缀为 `http://localhost:5000/api` ### 认证方式 需要登录的接口,请求头需携带 `Authorization` 字段: ``` Authorization: <登录成功后的token> ``` ### 接口列表 | 方法 | 路径 | 说明 | 需要登录 | |------|------|------|----------| | POST | `/login` | 管理员登录 | ❌ | | GET | `/config/start_date` | 获取恋爱起始时间 | ❌ | | PUT | `/config/start_date` | 更新恋爱起始时间 | ✅ | | GET | `/messages` | 获取所有留言 | ❌ | | POST | `/messages` | 发表留言 | ❌ | | DELETE | `/messages/` | 删除留言 | ✅ | | GET | `/photos` | 获取所有照片 | ❌ | | POST | `/photos` | 上传照片 | ❌ | | DELETE | `/photos/` | 删除照片 | ✅ | | GET | `/diary` | 获取所有日志 | ❌ | | GET | `/diary/` | 获取单篇日志 | ❌ | | POST | `/diary` | 添加日志 | ❌ | | PUT | `/diary/` | 更新日志 | ✅ | | DELETE | `/diary/` | 删除日志 | ✅ | | GET | `/anniversaries` | 获取所有纪念日 | ❌ | | POST | `/anniversaries` | 添加纪念日 | ✅ | | DELETE | `/anniversaries/` | 删除纪念日 | ✅ | | GET | `/health` | 健康检查 | ❌ | ### 接口示例 **登录** ```bash curl -X POST http://localhost:5000/api/login \ -H "Content-Type: application/json" \ -d '{"username": "admin", "password": "admin123"}' ``` **发表留言** ```bash curl -X POST http://localhost:5000/api/messages \ -H "Content-Type: application/json" \ -d '{"author": "张三", "content": "祝你们幸福!"}' ``` **添加日志** ```bash curl -X POST http://localhost:5000/api/diary \ -H "Content-Type: application/json" \ -d '{"title": "第一次约会", "content": "今天我们第一次见面..."}' ``` **添加纪念日**(需登录) ```bash curl -X POST http://localhost:5000/api/anniversaries \ -H "Content-Type: application/json" \ -H "Authorization: " \ -d '{"name": "一周年纪念日", "date": "2024-05-20"}' ``` --- ## 🗄️ 数据库结构 ### 表结构 **Config 表** - 配置信息 | 字段 | 类型 | 说明 | |------|------|------| | id | INTEGER | 主键 | | key | TEXT | 配置键(如 start_date) | | value | TEXT | 配置值 | | updated_at | TIMESTAMP | 更新时间 | **Message 表** - 留言 | 字段 | 类型 | 说明 | |------|------|------| | id | INTEGER | 主键 | | author | TEXT | 昵称 | | content | TEXT | 留言内容 | | created_at | TIMESTAMP | 创建时间 | **Photo 表** - 照片 | 字段 | 类型 | 说明 | |------|------|------| | id | INTEGER | 主键 | | image_data | TEXT | 图片Base64数据 | | caption | TEXT | 照片说明 | | created_at | TIMESTAMP | 创建时间 | **Diary 表** - 日志 | 字段 | 类型 | 说明 | |------|------|------| | id | INTEGER | 主键 | | title | TEXT | 日志标题 | | content | TEXT | 日志内容 | | created_at | TIMESTAMP | 创建时间 | **Anniversary 表** - 纪念日 | 字段 | 类型 | 说明 | |------|------|------| | id | INTEGER | 主键 | | name | TEXT | 纪念日名称 | | date | DATE | 纪念日日期 | | created_at | TIMESTAMP | 创建时间 | **Admin 表** - 管理员 | 字段 | 类型 | 说明 | |------|------|------| | id | INTEGER | 主键 | | username | TEXT | 用户名 | | password_hash | TEXT | 密码哈希 | --- ## ⚠️ 注意事项 1. **请勿关闭运行后端的终端窗口**,否则服务会停止。 2. 照片以 Base64 格式存储在数据库中,建议上传图片不要过大。 3. 登录状态保存在浏览器 localStorage 中,有效期 1 小时。 4. 数据库文件 `love.db` 会自动生成,删除后会重新创建(数据会丢失)。 5. 建议定期备份 `love.db` 文件以防数据丢失。 6. 本项目仅用于本地开发和学习,请勿在生产环境中直接使用。 --- ## 🛠️ 技术栈 - **前端**: HTML5 + CSS3 + JavaScript - **后端**: Flask 2.x - **数据库**: SQLite - **前端特点**: 响应式设计、渐变背景、飘落爱心动画、卡片悬停效果 --- ## 📧 联系我们 如有问题或建议,请联系开发者。 --- **Made with ❤️**