# DreamLife **Repository Path**: laozibabac/dreamlife ## Basic Information - **Project Name**: DreamLife - **Description**: Django 数据库项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-12-14 - **Last Updated**: 2024-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DreamLife 基于 `python 3.9` , `Django 3.2`,`opengauss 5.0`的简单博客系统 ## 应用需求 + 用户登录,注册,信息编辑,会话状态等用户身份验证功能 + 支持`邮件验证码`注册及找回密码 + 支持`用户关注`功能,用户可以在首页用户广场发现和`搜索`其它用户 + 博客归档,编辑,发布,草稿功能 + 实现文章简单评论和标签功能 + 在用户主页实现文章`关键词搜索`功能 + 支持博客内容 `Markdown` 渲染 --- ## 系统设计 本项目由 `user`,`blog`,`comment`三个应用组成 ### user #### 主要关系模式 + User(***username***, nickname, registerTime, email) + Follow(***rid***,from_user,to_user) #### 设计概述 为实现关注功能,需要建立用户与用户之间多对多关注表 Follow,该实体依赖于 User 存在,rid为数据库自动添加的主键。 ### blog #### 主要关系模式 + Article(***aid***, title, abstract, body, author, updatedAt, createdAt, status) + Tag(***tag_id***, content) + Article2Tags(***atid***, article, tag) #### 设计概述 为实现文章标签功能,我们建立文章到标签的多对多联系,并限制一篇文章最多拥有6个标签 ### comment #### 主要关系模式 + Comment(***cid***, content, updatedAt, author, article) #### 设计概述 以上关系模式针对简单评论设计而成,后续可为评论回复功能增设自联系集并添加“父评论”属性 ### 完整E-R图 ![ER](./DreamLife/docs/models.png) --- ## 系统实现 ### user #### 用户登录页 + **url**: user/login/ + 主体功能:用户登录,跳转到注册和“找回密码”页面 #### 用户注册页 + **url**: user/register/ + 主体功能:用户注册,采用强制邮箱验证方式,由前台验证邮箱格式并Ajax后台调用服务与专用邮箱发送邮箱验证码方式。提交表单后由后台执行注册。 #### 用户广场 + **url**: user/ + 主体功能: 展示所有用户,支持搜索功能,支持点击跳转到该用户主页 #### 用户个人中心 + **url**: user/centre/\/ + 主体功能: + 展示用户已关注列表与粉丝列表 + 展示已发表的所有文章,包含搜索功能(支持搜索文章标题与摘要) + 访客可点击“关注”按钮关注用户 + 可跳转到“首页”“写博客”“博客归档”“信息编辑”或退出登录。 #### 找回密码页 + **url**: user/forget_password/ + 主体功能:采用Ajax技术与后台协同实现邮箱验证码功能,用户通过验证后由后台执行修改密码策略。 #### 用户信息编辑 + **url**: user/centre/\/edit/ + 主体功能: 支持在登录时无需邮箱验证即可用户修改昵称与密码 #### 关注与粉丝列表 + **关注列表 url**: user/\/following/ + **粉丝列表 url**: user/\/followers/ + 主体功能: 展示关注与粉丝列表,支持搜索粉丝或关注用户名,支持列表点击跳转到该用户主页 ### blog #### 文章归档页 + **url**: blog/archieve/\/ + 主体功能:展示当前登录用户的已发表博客列表,可通过此页面查看文章详情和删除文章 #### 草稿箱 + **url**: blog/drafts/\/ + 主体功能:展示当前登录用户的草稿(未发布草稿)列表,可通过此页面查看草稿详情和删除草稿 #### 文章详情页 + **url**: blog/article/\/\/ + 主体功能:展示指定文章详情,根据请求用户决定展示权限 #### 文章编辑页 + **url**: blog/edit/ + 主体功能:文章内容编辑,更新,指定发布或存为草稿 ### comment + **url**: blog/post-comment/\/ + 主体功能:简单评论,该功能在文章详情页中实现 --- ## 项目分工 + 段尧:完成 `user` 应用,实现本项目所有搜索功能,设计项目主体CSS样式 + 林柯桦:完成 `blog` 和 `comment`应用 --- ## 项目依赖 ``` psycopg2==2.9.9 django-extensions==3.2.3 Django==3.2 ``` --- ## 项目体验网址 + [项目体验网址](http://139.9.132.102:80/)