1.6 Django RestFramework(drf)实战案例
1. 需求
请结合上述学习的drf知识开发 简易版《抽屉新热榜》。其中包含的功能如下:
注册
输入:手机号、用户名、密码、确认密码。
登录
输入:手机号 或 用户名 + 密码 注意:登录成功后给用户返回token,后续请求需要在url中携带token(有效期2周)
我的话题
- 我的话题列表 - 创建话题 - 修改话题 - 删除话题(逻辑删除)
我的资讯
- 创建资讯(5分钟创建一个,需要根据用户限流) 问题1:5/h 2/m; 问题2:成功后,下次再创建; - 文本(你问我答、42区、挨踢1024、段子) - 图片(图片、你问我答、42区、挨踢1024、段子) - 连接(图片、你问我答、42区、挨踢1024、段子) 注意:创建时默认自己做1个推荐。 - 我的资讯列表
首页
- 资讯首页 - 时间倒序,读取已审核通过的资讯 - 加载更多,分页处理 - 支持传入参数,查询各分区资讯:图片、你问我答、42区、挨踢1024、段子 ?zone=2
推荐
- 推荐 - 取消推荐 - 我的推荐列表
收藏
- 收藏 or 取消收藏 - 我的收藏列表
评论
- 查看评论列表 - 根据【后代的更新时间】从大到小排序,读取根评论,每次读20条。 - 读取根评论先关的子评论。 - 将子评论挂靠到跟评论上,最终形成父子关系通过JSON返回给前端。 注意:自己也可以通过depth实现逐步读取子评论(此处不这样操作) - 创建评论 - 判断是根评论 or 回复 - 回复时,深度+1 - 评论后,找到根评论去更新【后代的更新时间】
2. 参考表结构
表结构参考:
from django.db import models
class DeletedModel(models.Model):
deleted = models.BooleanField(verbose_name="已删除", default=False)
class Meta:
abstract = True
class UserInfo(DeletedModel):
""" 用户表 """
username = models.CharField(verbose_name="用户名", max_length=32)
phone = models.CharField(verbose_name="手机号", max_length=32, db_index=True)
password = models.CharField(verbose_name="密码", max_length=64)
token = models.CharField(verbose_name="token", max_length=64, null=True, blank=True, db_index=True)
token_expiry_date = models.DateTimeField(verbose_name="token有效期", null=True, blank=True)
status_choice = (
(1,