# PetAdoptionSystem **Repository Path**: mark_open/pet-adoption-system ## Basic Information - **Project Name**: PetAdoptionSystem - **Description**: 宠物领养系统 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-13 - **Last Updated**: 2026-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 宠物领养系统 ======= > 基于 Django 的模块化宠物领养平台|课程设计 & 毕业设计 & 全栈实践项目 一个具备 **完整业务闭环 + 社区生态 + 内容生态 + 消息通知机制** 的综合性 Web 系统。 --- # 🌟 项目简介 本项目是一个面向宠物领养场景的综合信息管理平台,实现了从宠物发布、用户申请、后台审核到结果通知的完整业务流程,同时融合论坛互动与宠物科普内容模块,形成可持续运营的社区化系统。 系统采用模块化设计思想,具备良好的可扩展性与工程实践价值。 前端地址: http://localhost:8000 管理后台: http://localhost:8000/admin/ 管理员账号:admin 管理员密码:admin --- # ✨ 项目特色 ## 🧩 模块化架构设计 按照业务领域拆分为多个独立 App: - user —— 用户管 - pet —— 宠物领养核心模块 - article —— 宠物科普文章 - forum —— 交流社区 - notice —— 消息通知 - common_comment —— 通用评论系统 实现: - 高内聚低耦合 - 可插拔式系统结构 - 组件复用 --- ## 🔄 完整业务闭环 系统实现真实业务流程: 宠物发布 → 用户浏览 → 提交申请 → 后台审核 → 状态流转 → 消息通知 具备: - 状态驱动业务模型 - 用户行为反馈机制 - 数据闭环 --- ## 💬 通用评论系统 评论模块采用解耦设计,可复用于: - 宠物 - 文章 - 帖子 体现 DRY 原则与组件化开发思想。 --- ## 🔔 事件驱动的通知机制 触发式通知: - 领养状态变更 - 评论互动 - 系统消息 增强系统交互体验。 --- ## 🎨 模板组件化 ``` templates/ ├── base.html //基础模板 ├── components/ //组件模板 ├── article/ //文章模块模板 ├── forum/ //论坛模块模板 ├── notice/ //通知模块模板 ├── pet/ //宠物模块模板 └── user/ //用户模块模板 ``` 实现前端结构复用与统一 UI 风格。 ### 模板文件详细说明 #### 基础模板 | 文件路径 | 功能说明 | |---------|--------| | `templates/base.html` | 网站基础模板,定义页面整体结构,包含导航栏、页脚等公共部分 | #### 组件模板 | 文件路径 | 功能说明 | |---------|--------| | `templates/components/card_content.html` | 卡片内容组件,用于展示各种卡片式内容 | | `templates/components/create_object.html` | 创建对象组件,用于生成创建表单 | | `templates/components/css_file.html` | CSS 文件引入组件,统一管理样式文件 | | `templates/components/footer.html` | 页脚组件,网站底部信息 | | `templates/components/index_content_card.html` | 首页内容卡片组件,用于展示首页的卡片式内容 | | `templates/components/js_file.html` | JavaScript 文件引入组件,统一管理脚本文件 | | `templates/components/navbar.html` | 导航栏组件,网站顶部导航菜单 | | `templates/components/paginator.html` | 分页组件,用于列表页的分页功能 | | `templates/components/pro_city.html` | 省市选择组件,用于地址选择 | #### 文章模块模板 | 文件路径 | 功能说明 | |---------|--------| | `templates/article/article_base.html` | 文章模块基础模板,继承自 base.html | | `templates/article/article_detail.html` | 文章详情页,展示文章的详细内容 | | `templates/article/aside.html` | 文章侧边栏,展示分类、标签等信息 | | `templates/article/cate_article.html` | 分类文章列表页,展示特定分类的文章 | | `templates/article/data_view.html` | 资讯分析页,展示文章数据的图表分析 | | `templates/article/index.html` | 文章列表首页,展示所有文章 | | `templates/article/publish_article.html` | 文章发布页,用于撰写和发布新文章 | | `templates/article/search_article.html` | 文章搜索结果页,展示搜索到的文章 | | `templates/article/tag_article.html` | 标签文章列表页,展示特定标签的文章 | #### 论坛模块模板 | 文件路径 | 功能说明 | |---------|--------| | `templates/forum/add_post.html` | 发布帖子页,用于撰写和发布新帖子 | | `templates/forum/author_detail.html` | 作者详情页,展示用户发布的帖子 | | `templates/forum/cate_list.html` | 分类列表页,展示论坛的所有分类 | | `templates/forum/cate_post.html` | 分类帖子列表页,展示特定分类的帖子 | | `templates/forum/forum_base.html` | 论坛模块基础模板,继承自 base.html | | `templates/forum/hot_post.html` | 热门帖子页,展示热门的帖子 | | `templates/forum/index.html` | 论坛首页,展示最新帖子 | | `templates/forum/post_detail.html` | 帖子详情页,展示帖子的详细内容和评论 | | `templates/forum/search.html` | 帖子搜索结果页,展示搜索到的帖子 | | `templates/forum/sidebar_card.html` | 论坛侧边栏卡片,展示论坛相关信息 | #### 通知模块模板 | 文件路径 | 功能说明 | |---------|--------| | `templates/notice/read_notice_list.html` | 已读通知列表页,展示用户已阅读的通知 | | `templates/notice/unread_notice_list.html` | 未读通知列表页,展示用户未阅读的通知 | #### 宠物模块模板 | 文件路径 | 功能说明 | |---------|--------| | `templates/pet/all_pet.html` | 所有宠物列表页,展示所有宠物信息 | | `templates/pet/index.html` | 宠物模块首页,展示最近添加的宠物和轮播图 | | `templates/pet/my_adopted_pets.html` | 我的已领养宠物页,展示用户已领养的宠物 | | `templates/pet/pet_base.html` | 宠物模块基础模板,继承自 base.html | | `templates/pet/pet_detail.html` | 宠物详情页,展示宠物的详细信息和领养申请表单 | #### 用户模块模板 | 文件路径 | 功能说明 | |---------|--------| | `templates/user/login-v1.html` | 登录页面版本 1,用户登录表单 | | `templates/user/login.html` | 登录页面,用户登录表单 | | `templates/user/profile.html` | 个人资料页,展示用户的详细信息 | | `templates/user/profile_create.html` | 创建个人资料页,用于新用户创建详细资料 | | `templates/user/profile_update.html` | 更新个人资料页,用于修改用户详细资料 | | `templates/user/register-v1.html` | 注册页面版本 1,用户注册表单 | | `templates/user/register.html` | 注册页面,用户注册表单 | | `templates/user/user_base.html` | 用户模块基础模板,继承自 base.html | | `templates/user/user_password.html` | 密码修改页,用于用户修改密码 | #### 评论模块模板 | 文件路径 | 功能说明 | |---------|--------| | `templates/common_comment/common_comment.html` | 通用评论组件,用于在各模块中展示和提交评论 | --- # 🏗 技术架构 ## 架构模式 B/S 三层架构: - 表现层:Django Templates + Bootstrap - 业务层:Django Views - 数据层:Django ORM --- # 🛠 技术栈 ## Backend - Python 3.10.0 - Django 4.2.6 ## Frontend - Bootstrap 5 ## Database - MySQL (支持扩展 SQLite / PostgreSQL) ## 第三方库 - jazzmin - 美化后台管理界面 - notifications - 通知系统插件 - imagekit - 图像处理插件 - mptt - 树形结构模型支持 - crispy_forms - 表单美化插件 - tinymce - 富文本编辑器 --- # 🧠 核心技术实现 ## 自定义用户模型 - 扩展用户字段 - 解耦认证系统 - 支持业务扩展 ## ModelForm 自动表单生成 - 自动数据验证 - 减少重复代码 ## ORM 关系建模 实现复杂数据关系与业务状态控制。 ## 权限控制 - 登录访问限制 - 用户数据隔离 --- # ⚡ 性能优化 - select_related / prefetch_related 查询优化 - 模板复用减少渲染开销 - 静态资源统一管理 --- # 📦 项目结构 ``` PetAdoptionSystem ├── PetAdoptionSystem/ # 主应用 ├── article/ # 文章管理应用 ├── forum/ # 论坛应用 ├── notice/ # 消息通知应用 ├── pet/ # 宠物领养核心应用 ├── user/ # 用户管理应用 ├── common_comment/ # 通用评论系统 ├── templates/ # 模板文件 ├── static/ # 静态文件 ├── media/ # 媒体文件 └── manage.py # 项目管理脚本 ``` --- # 📁 板块功能详细说明 ## 1. 主应用 (PetAdoptionSystem) ### 核心文件 | 文件路径 | 功能说明 | |---------|--------| | `PetAdoptionSystem/settings.py` | 项目配置文件,包含数据库设置、应用注册、第三方插件配置等 | | `PetAdoptionSystem/urls.py` | 项目根 URL 配置,管理所有应用的路由分发 | | `PetAdoptionSystem/views.py` | 全局视图函数,如图片上传处理等 | | `PetAdoptionSystem/utils.py` | 工具函数和类,如分页功能等 | ## 2. 用户管理模块 (user) ### 核心文件 | 文件路径 | 功能说明 | |---------|--------| | `user/models.py` | 用户数据模型,包含 User 和 UserProfile 模型 | | `user/views.py` | 用户相关视图,如注册、登录、个人资料管理等 | | `user/forms.py` | 用户表单,如注册表单、登录表单、密码修改表单等 | | `user/urls.py` | 用户模块 URL 配置 | ### 主要功能 - 用户注册与登录 - 个人资料管理 - 密码修改 - 用户认证与权限控制 ## 3. 宠物领养核心模块 (pet) ### 核心文件 | 文件路径 | 功能说明 | |---------|--------| | `pet/models.py` | 宠物相关数据模型,包含 Pet、PetCategory、PetPhoto、HealthRecord、AdoptionApplication、PetCarousel 模型 | | `pet/views.py` | 宠物相关视图,如首页展示、宠物详情、领养申请、已领养宠物列表等 | | `pet/urls.py` | 宠物模块 URL 配置 | | `pet/templatetags/pet_tags.py` | 宠物相关模板标签 | ### 主要功能 - 宠物信息发布与管理 - 宠物领养申请提交与审核 - 宠物健康记录管理 - 宠物照片上传与管理 - 首页轮播图管理 ## 4. 文章管理模块 (article) ### 核心文件 | 文件路径 | 功能说明 | |---------|--------| | `article/models.py` | 文章相关数据模型,包含 Article、Category、Tag 模型 | | `article/views.py` | 文章相关视图,如文章列表、详情、分类、标签、搜索、发布、图表数据等 | | `article/form.py` | 文章表单,如文章发布表单等 | | `article/urls.py` | 文章模块 URL 配置 | | `article/templatetags/blog_tags.py` | 文章相关模板标签 | ### 主要功能 - 宠物科普文章发布与管理 - 文章分类与标签管理 - 文章搜索功能 - 资讯数据分析与图表展示 ## 5. 论坛模块 (forum) ### 核心文件 | 文件路径 | 功能说明 | |---------|--------| | `forum/models.py` | 论坛相关数据模型,包含 Post、PostCategory、PostTag、Follow 模型 | | `forum/views.py` | 论坛相关视图,如论坛首页、帖子详情、分类列表、搜索、热门帖子等 | | `forum/form.py` | 论坛表单,如帖子发布表单等 | | `forum/urls.py` | 论坛模块 URL 配置 | | `forum/templatetags/post_tags.py` | 论坛相关模板标签 | ### 主要功能 - 帖子发布与管理 - 帖子分类与标签管理 - 帖子搜索功能 - 用户关注功能 - 热门帖子展示 ## 6. 消息通知模块 (notice) ### 核心文件 | 文件路径 | 功能说明 | |---------|--------| | `notice/views.py` | 通知相关视图,如未读通知列表、已读通知列表等 | | `notice/urls.py` | 通知模块 URL 配置 | ### 主要功能 - 系统消息管理 - 领养状态变更通知 - 评论互动通知 - 通知已读/未读状态管理 ## 7. 通用评论系统 (common_comment) ### 核心文件 | 文件路径 | 功能说明 | |---------|--------| | `common_comment/models.py` | 评论数据模型,支持通用评论功能 | | `common_comment/views.py` | 评论相关视图,如评论提交、回复等 | | `common_comment/form.py` | 评论表单 | | `common_comment/urls.py` | 评论模块 URL 配置 | | `common_comment/templatetags/comments_tags.py` | 评论相关模板标签 | ### 主要功能 - 通用评论功能,支持多模型 - 评论回复功能 - 评论层级展示 --- # 📚 模板文件结构 ## 核心模板 | 文件路径 | 功能说明 | |---------|--------| | `templates/base.html` | 基础模板,定义页面整体结构 | | `templates/pet/index.html` | 首页模板 | | `templates/pet/pet_detail.html` | 宠物详情页模板 | | `templates/pet/all_pet.html` | 宠物列表页模板 | | `templates/article/article_list.html` | 文章列表页模板 | | `templates/article/article_detail.html` | 文章详情页模板 | | `templates/article/data_view.html` | 资讯分析页模板 | | `templates/forum/forum_index.html` | 论坛首页模板 | | `templates/forum/post_detail.html` | 帖子详情页模板 | | `templates/user/register.html` | 用户注册页模板 | | `templates/user/login.html` | 用户登录页模板 | | `templates/notice/unread_notice_list.html` | 未读通知列表页模板 | --- # 🗄 数据库表结构 ## 用户相关表 - `user_user` - 用户基本信息 - `user_userprofile` - 用户详细资料 ## 宠物相关表 - `pet_pet` - 宠物基本信息 - `pet_petcategory` - 宠物类别 - `pet_petphoto` - 宠物照片 - `pet_healthrecord` - 宠物健康记录 - `pet_adoptionapplication` - 领养申请 - `pet_petcarousel` - 轮播图 ## 文章相关表 - `article_article` - 文章信息 - `article_category` - 文章分类 - `article_tag` - 文章标签 ## 论坛相关表 - `forum_post` - 帖子信息 - `forum_postcategory` - 帖子分类 - `forum_posttag` - 帖子标签 - `forum_follow` - 关注关系 ## 评论相关表 - `common_comment_comment` - 评论信息 ## 通知相关表 - `notifications_notification` - 通知信息 --- # 🔐 安全机制 - CSRF 防护 - ORM 防 SQL 注入 - XSS 防护 - 权限控制 --- # 🚀 部署与运行 ## 环境准备 1. Python 3.10.0+ 2. MySQL 5.7+ 3. pip 包管理工具 ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 数据库配置 修改 `PetAdoptionSystem/settings.py` 中的数据库配置: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'petadoptionsystem', 'USER': 'root', 'PASSWORD': '123456', 'HOST': 'localhost', 'PORT': '3306', 'OPTIONS': { 'charset': 'utf8mb4', 'use_unicode': True, }, } } ``` ## 数据库迁移 ```bash python manage.py makemigrations python manage.py migrate ``` ## 创建超级用户 ```bash python manage.py createsuperuser ``` ## 运行开发服务器 ```bash python manage.py runserver ``` 访问地址:http://127.0.0.1:8000 --- # 🎯 核心业务流程 ## 1. 宠物领养流程 1. **宠物发布**:管理员在后台添加宠物信息 2. **用户浏览**:用户在首页或宠物列表页浏览可领养宠物 3. **提交申请**:用户点击宠物详情页的"申请领养"按钮,填写领养理由和养宠经验 4. **后台审核**:管理员在后台审核领养申请 5. **状态变更**:审核通过或拒绝后,系统自动更新宠物的可领养状态 6. **通知用户**:系统发送通知告知用户审核结果 ## 2. 文章发布流程 1. **文章撰写**:管理员或作者撰写宠物科普文章 2. **分类标签**:为文章选择分类和添加标签 3. **发布审核**:提交发布申请 4. **前台展示**:审核通过后,文章在前台展示 5. **数据统计**:系统自动统计文章浏览量等数据 ## 3. 论坛互动流程 1. **帖子发布**:用户发布宠物相关帖子 2. **评论回复**:其他用户对帖子进行评论和回复 3. **用户关注**:用户可以关注其他用户 4. **热门推荐**:系统根据互动量推荐热门帖子 --- # 📊 系统功能模块图 ``` PetAdoptionSystem ├── 用户管理 │ ├── 注册登录 │ ├── 个人资料 │ └── 权限控制 ├── 宠物管理 │ ├── 宠物信息 │ ├── 领养申请 │ ├── 健康记录 │ └── 照片管理 ├── 文章管理 │ ├── 文章发布 │ ├── 分类标签 │ └── 资讯分析 ├── 论坛管理 │ ├── 帖子发布 │ ├── 评论回复 │ └── 用户关注 ├── 通知系统 │ ├── 系统消息 │ ├── 状态通知 │ └── 互动通知 └── 评论系统 ├── 通用评论 └── 评论回复 ``` --- # 🌟 项目亮点 1. **完整的业务闭环**:从宠物发布到领养成功的全流程管理 2. **模块化架构设计**:高内聚低耦合,便于扩展和维护 3. **用户体验优化**:响应式设计,流畅的交互体验 4. **数据可视化**:资讯分析页面的数据图表展示 5. **社区化功能**:论坛互动和用户关注机制 6. **安全可靠**:完善的权限控制和数据验证 7. **易于部署**:详细的部署文档和配置指南 --- # 📝 开发文档 ## 代码规范 - 遵循 PEP 8 代码风格 - 完善的中文注释 - 模块化设计 ## 命名规范 - 类名:驼峰命名法 - 函数名:小写字母加下划线 - 变量名:小写字母加下划线 - 常量名:全大写字母加下划线 ## 注释规范 - 模块级注释:说明模块功能和主要组件 - 类注释:说明类的功能和使用方法 - 函数注释:说明函数功能、参数、返回值 - 关键代码注释:说明复杂逻辑和算法 --- > 🌟 **东千宠物领养系统** - 让每一个生命都能找到温暖的家 🌟