天天看點

python新聞評論分析_新聞詳情頁Page not found

一,業務流程分析

1,功能

1,新聞詳情

2,加載評論功能

3,添加評論功能

二、新聞詳情頁

1,業務流程分析

業務流程:

1,判斷前端傳遞新聞ID是否為空,是否為整數,是否存在

二,接口設計

1、接口說明:

類目        說明

請求方式        GET

路徑          /news/

參數格式        url路徑參數

2、參數說明

參數名      類型      是否必須      描述

news_id      整數       是        新聞ID

3、傳回結果:

html頁面,直接通過模版渲染的方式實作

三、加載新聞評論

1.接口設計

新聞詳情頁,直接通過渲染獲得

2.接口說明

類目        說明

請求方式        GET

路徑          /news/

參數格式        url路徑參數

3、參數說明

參數名      類型      是否必須      描述

news_id      get       是

4、傳回結果:

html頁面,直接通過模版渲染的方式實作

news/view.py 檔案

class NewsDetailView(View):

"""

新聞詳情視圖

url: '/news//'

"""

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('

Page not found

')

三、加載新聞評論

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//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

}

}

}