Flask项目 Day5
1.首页和详情页基类模版抽取,继承
公共的保留,不同的抽取 block占位
继承:{% extends ‘xxx’ %}
再填充block
2.新闻详情页的基本模版数据显示
复制相同逻辑代码,点击排行,获取登录信息
获取用户登录信息是总得需要,所以也可以抽取出来~用g变量保存用户信息
也可以用装饰器查询登录信息,查完后保存到
functools.wraps装饰器的说明
装饰器装饰函数的时候,默认会将函数名改为闭包的名字,很好理解。这样操作多个函数的时候函数名一样,如果里面定义相同名字变量值又不一样会引发冲突!
解决办法就是将装饰器内层函数用functools.wraps再装饰,这样变量名就是自己本身被装饰函数的变量名,没有改变
详情页数据显示
后台用模型查数据
登录可以评论,没登录提示登录
3.收藏逻辑的实现,多对多模型
展示实现:
后台添加iscollected为True 就是收藏 传给前端模版 前端做一些判断展现
完善逻辑
借用模型的多对多模型,还有关系
点击收藏,点击取消收藏都是ajax请求
对数据库的修改都应该是post
后台接口设计:
接收json 方式post
参数:新闻id method:收藏还是取消收藏
不需要传用户id(在cookie中可以取到)
get才可以取args
步骤:接收参数 校验参数
实际业务逻辑:查到新闻的模型,收藏
前端实现:
同样做个ajax请求
4.评论的实现
需求分析:
评论新闻或回复某条评论
后端实现:
接口设计:url ‘/news/news_comment’
传入json 参数:新闻id 评论内容 pid
模型上:评论与父评论,自关联,一对多
步骤:取到请求参数 校验参数 初始化评论模型 业务逻辑:操作模型
前端逻辑实现:
聚焦后端