# dig **Repository Path**: viewshadow/dig ## Basic Information - **Project Name**: dig - **Description**: 本项目是仿照《抽屉新热榜》,写的简易版后端代码。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-17 - **Last Updated**: 2024-07-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dig #### 介绍 本项目是仿照《抽屉新热榜》,写的简易版后端代码。 #### 软件架构 本项目使用python语言开发,使用django rest framework框架,纯后端代码,数据库使用mysql。 #### 使用说明 可以使用浏览器进行访问,推荐使用postman访问。[访问地址](http://139.9.86.14:8000/api/register/) #### 代码结构 ``` . ├── api │   ├── admin.py │   ├── apps.py │   ├── extension │   │   ├── auth.py │   │   ├── filter.py │   │   ├── mixins.py │   │   ├── page.py │   │   ├── return_code.py │   │   └── throttle.py │   ├── migrations │   ├── models.py │   ├── serializers │   │   ├── account.py │   │   ├── collect.py │   │   ├── comment.py │   │   ├── news.py │   │   ├── recommend.py │   │   └── topic.py │   ├── tests.py │   ├── urls.py │   └── views │   ├── account.py │   ├── collect.py │   ├── comment.py │   ├── news.py │   ├── recommend.py │   └── topic.py ├── dig │   ├── asgi.py │   ├── local_settings.py │   ├── settings.py │   ├── urls.py │   └── wsgi.py ├── manage.py ├── README.md └── requirements.txt ``` #### 服务器部署步骤 1. 准备一台服务器,安装python、mysql等软件和依赖。 2. 下载代码,修改本地配置文件`local_settings.py`。 3. 初始化数据库,初始化表。 4. 启动Django服务。 #### 实现功能 1. 注册 ```yml 输入:手机号、用户名、密码、确认密码 ``` 2. 登录 ``` 输入: 手机号 或 用户名 密码 注意:登录成功后,服务器给用户返回token,后续请求需要在url中携带token(有效期2周) ``` 3. 我的话题 ```yaml - 我的话题列表 - 创建话题 - 修改话题 - 删除话题(逻辑删除) ``` 4. 我的资讯 ``` - 创建资讯(根据用户限流,5分钟内只能创建一次),资讯需要选择类型和分区 - 文本(你问我答、42区、挨踢1024、段子) - 图片(图片、你问我答、42区、挨踢1024、段子) - 连接(图片、你问我答、42区、挨踢1024、段子) 注意:创建时默认自己做1个推荐。 - 我的资讯列表 ``` 5. 首页 ``` - 资讯首页 - 时间倒序,读取已审核通过的资讯 - 加载更多,分页处理 - 支持传入参数,查询各分区资讯:图片、你问我答、42区、挨踢1024、段子 ?zone=2 ``` 6. 推荐 ``` - 推荐 - 取消推荐 - 我的推荐列表 ``` 7. 收藏 ``` - 收藏 - 取消收藏 - 我的收藏列表 ``` 8. 评论 ``` - 查看评论列表 - 根据“子评论的更新时间”,从新到旧排列 - 读取根评论相关的子评论 - 将子评论挂靠在跟评论上,最终形成父子关系字典返回给前端 - 创建评论 - 判断 根评论 or 回复 - 回复时,深度 +1 - 评论后,更新根评论的“后代更新时间” ``` #### 接口列表 ``` api/ auth/ [name='auth'] api/ ^register/$ [name='register-list'] api/ ^topic/$ [name='topic-list'] api/ ^topic/(?P[^/.]+)/$ [name='topic-detail'] api/ ^news/$ [name='news-list'] api/ ^index/$ [name='index-list'] api/ ^collect/$ [name='collect-list'] api/ ^recommend/$ [name='recommend-list'] api/ ^comment/$ [name='comment-list'] ``` #### 运行效果 ![image-20240717091300800](./assets/image-20240717091300800.png)