文档章节

新闻详情页

o
 osc_g8254g7s
发布于 2019/08/20 20:33
字数 634
阅读 7
收藏 0

精选30+云产品,助力企业轻松上云!>>>

一,业务流程分析

  1,功能

    1,新闻详情

    2,加载评论功能

    3,添加评论功能

二、新闻详情页

  1,业务流程分析

    业务流程:

    1,判断前端传递新闻ID是否为空,是否为整数,是否存在

  二,接口设计

    1、接口说明:

      类目        说明

    请求方式        GET

    路径          /news/<int:news_id>  

    参数格式        url路径参数

    2、参数说明  

    参数名      类型      是否必须      描述

    news_id      整数       是        新闻ID 

    3、返回结果:

       html页面,直接通过模版渲染的方式实现  

  

    三、加载新闻评论

    1.接口设计  

    新闻详情页,直接通过渲染获得

    2.接口说明 

      类目        说明

    请求方式        GET

    路径          /news/<int:news_id>  

    参数格式        url路径参数

    3、参数说明  

    参数名      类型      是否必须      描述

    news_id      get       是        

    4、返回结果:

       html页面,直接通过模版渲染的方式实现

news/view.py 文件

class NewsDetailView(View):
"""
新闻详情视图
url: '/news/<int:news_id>/'
"""
def get(self, request, news_id):
#1,校验是否存在
# 2,获取数据
news = News.objects.select_related('tag', 'author').only('title','content','update_time','tag__name','author__username').filter(is_delete=False, id=news_id).first()
news = News.objects.get(pk=news_id)
if news:
# 3,展示
return render(request,'news/news_detail.html',context={'news': news})
else:
return HttpResponseNotFound('<h1>Page not found</h1>')

三、加载新闻评论

  1,接口设计

  新闻详情页,直接渲染新闻评论

  2,后端代码

  模型代码

  #本项目设计二级评论

  parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True)

  模型修改一定要数据库迁移

  

  python manage.py makemigrations

  python manage.py migrate

 四、添加新闻评论功能

  1.业务流程分析

    业务处理流程

      1.判断用户是否登录

      2.判断前端传的新闻ID是否为空,是否为整数,是否存在

      3.判断评论内容是否为空

      4.判断是否有父评论,父评论id是否与新闻id匹配

      5.保持新闻评论

    2.接口说明 

      类目        说明

    请求方式        POST

    路径          /news/<int:news_id>/comment/  

    参数格式        url路径参数,表单参数

    3、参数说明  

    参数名      类型      是否必须      描述

    news_id      整数       是         新闻ID 

    content      字符串         是        新闻评论内容

    parent_id           整数        是          父评论id

    注意:post请求需要携带csrftonke

    4、返回结果:

    json

  {

    "errno": "0",

    "errmsg":""

    "data": {

      "news_id": 1170,

      "content_id": 3569,

      "content": "评论比较中肯。",

      "author": "admin",

      "update_time": "2019年08月19日 16:00",

     "parent": {

        "news_id": 1170,

        "content_id": 893,

        "content": "行文思路简单肤浅,文章结构平面呆板。",

        "author": "xinlan",

        "update_time": "2018年12月21日 11:17",

        "parent": null

    }

   }

  }

  

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
抓取js动态生成的数据分析案例

需求: 爬取https://www.xuexi.cn/f997e76a890b0e5a053c57b19f468436/data018d244441062d8916dd472a4c6a0a0b.html页面中的新闻数据。 1.爬取当前页中所有新闻的详情内容 2.进行任意的持久化存...

osc_my2aqmiz
2019/03/28
2
0
抓取js动态生成的数据分析案例

抓取js动态生成的数据分析案例 需求:爬取https://www.xuexi.cn/f997e76a890b0e5a053c57b19f468436/018d244441062d8916dd472a4c6a0a0b.html页面中的新闻数据。 分析:   1.首先通过分析页面...

osc_e40tymzn
2019/06/03
2
0
js动态生成数据的抓取

需求:爬取https://www.xuexi.cn/f997e76a890b0e5a053c57b19f468436/018d244441062d8916dd472a4c6a0a0b.html页面中的新闻数据。 分析:   1.首先通过分析页面会发现该页面中的新闻数据都是...

osc_p7ce7uk0
2019/07/03
6
0
抓取js动态生成的数据分析案例

需求:爬取https://www.xuexi.cn/f997e76a890b0e5a053c57b19f468436/018d244441062d8916dd472a4c6a0a0b.html页面中的新闻数据。 分析:   1.首先通过分析页面会发现该页面中的新闻数据都是...

osc_n6euf5h6
2019/03/19
2
0
爬虫大作业(2017年科技界发生了哪些变化——爬取17年腾讯新闻科技板块下的所有新闻)

一、主题   本次作业是通过爬取腾讯新闻科技板块下2017年所有的新闻数据来分析17年科技界都发生了哪些热门事件,通过词云分析得出17年度科技界最热的词语。 二、实现过程   1、首先打开腾...

osc_9hgpcg9o
2018/04/30
4
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 那么长的绳子,你这是放风筝呢

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @ 巴拉迪维:黑豹乐队的单曲《无地自容》 耳畔突然响起旋律,是那首老歌。中国摇滚有了《一无所有》不再一无所有;中国摇滚有了《无地自容》不...

小小编辑
51分钟前
55
1
《吐血整理》-顶级程序员书单集

你知道的越多,你不知道的越多 给岁月以文明,而不是给文明以岁月 前言 王潇:格局决定了一个人的梦想,梦想反过来决定行为。 那格局是什么呢? 格局是你能够看见的深度、广度和密度。 王潇认...

敖丙
2019/12/11
8
0
我可以在Android版式中加下划线吗? - Can I underline text in an Android layout?

问题: 如何在Android布局xml文件中定义带下划线的文本? 解决方案: 参考一: https://stackoom.com/question/A31z/我可以在Android版式中加下划线吗 参考二: https://oldbug.net/q/A31z/...

法国红酒甜
54分钟前
26
0
干掉ELK | 使用Prometheus+Grafana搭建监控平台

什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。 Prometheus的特点 · 多维度...

木九天
今天
34
0
拉勾网拉你上勾

预览 需求简介 拉勾网是一个互联网行业的一个招聘网站,上面有许多职位,于是乎,小编想提取指定职位的基本信息(职位名,薪水,工作经验,工作地点,教育背景),然后插入 MongoDB 数据库,...

木下瞳
2019/04/17
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部