1. 程式人生 > >flask專案-新聞類專案後臺主要邏輯

flask專案-新聞類專案後臺主要邏輯

專案整體邏輯

1.1 專案簡介

一款新聞展示的Web專案,主要為使用者提供最新的金融資訊、資料。 以抓取其他網站資料和使用者釋出作為新聞的主要來源。 基於 Flask 框架,以 前後端不分離 的形式實現具體業務邏輯。 1.2 專案技術要點

基於 Python 3.6 + Flask 框架實現。 資料儲存使用 Redis + MySQL 實現。

第三方擴充套件:

七牛雲:檔案儲存平臺 雲通訊:簡訊驗證碼平臺 佈署:基於ubuntu 16.04系統,使用 Gunicorn + Nginx 進行佈署。

1.3 專案功能模組

新聞模組。 首頁新聞列表 新聞詳情 使用者模組。 登入註冊&個人資訊修改&關注其他使用者 新聞收藏&釋出 後臺管理。 使用者統計&管理 新聞的稽核 新聞分類的管理 專案中用到了哪些資料表: 在這裡插入圖片描述

專案日誌介紹

3.1 基本概念

日誌是一種可以追蹤某些軟體執行時所發生事件的方法。

3.2 日誌的作用

程式除錯

瞭解軟體程式執行情況,是否正常

軟體程式執行故障分析與問題定位

如果應用的日誌資訊足夠詳細和豐富,還可以用來做使用者行為分

3.3 日誌的等級

​ 按照事件的重要程度,日誌一般可以分為如下等級:

FATAL/CRITICAL = 重大的,危險的

ERROR = 錯誤

WARNING = 警告

INFO = 資訊

DEBUG = 除錯

使用者功能模組描述

圖片驗證碼的使用流程。

答:

1)獲取引數(圖片驗證碼標識uuid)並進行引數校驗 2)使用captcha工具包生成圖片驗證碼 3)在redis中儲存圖片驗證碼文字(以uuid為key,驗證碼文字為value) 4)返回驗證碼圖片(注:指定響應資料型別:Content-Type:‘image/jpg’) 在這裡插入圖片描述

傳送簡訊驗證碼的流程。

1)獲取引數(手機號,圖片驗證碼,圖片驗證碼標識uuid,)並進行引數校驗 2)根據圖片驗證碼標識uuid從redis中獲取真實圖片驗證碼文字(如果獲取不到,驗證碼已過期) 3)對應圖片驗證碼,如果一致 4)給手機號傳送簡訊驗證碼 4.1)隨機生成6位的簡訊驗證碼數字 4.2)在在redis中儲存簡訊驗證碼內容(以手機號為key,以簡訊驗證碼內容為value) 4.3)使用雲通訊SDK傳送簡訊 5)返回應答,傳送簡訊驗證碼成功 在這裡插入圖片描述

註冊功能的後端業務流程:

1)獲取引數(手機號,簡訊驗證碼,密碼)和 引數校驗 2)從redis中獲取簡訊驗證碼(如果獲取不到,簡訊驗證碼過期) 3)對比簡訊驗證碼,如果一致 4)校驗手機號是否已經被註冊 5)建立User並儲存註冊使用者的資訊 6)新增使用者資訊到資料庫 7)返回應答,註冊成功

登入和退出功能的後端業務流程:

登入功能: 1)獲取引數(手機號,密碼)並引數校驗 2)根據手機號查詢使用者的資訊(如果查詢不到,使用者不存在) 3)校驗使用者的密碼是否正確,如果正確 4)在session中記錄使用者的登入狀態 5)返回應答,登入成功 退出功能: 1)清除session中使用者的登入資訊 2)返回應答,退出登入成功

設定使用者個人資訊後端業務流程:

1)獲取引數(個人簽名,暱稱,性別)並引數校驗 2)設定使用者的個人資訊並儲存進資料庫 3)設定session中的nick_name 4)返回應答,設定個人資訊成功

設定上傳使用者頭像後端業務流程:

1)接收上傳頭像檔案物件並進行校驗 2)將頭像檔案上傳至七牛雲平臺 3)設定使用者的頭像地址avatar_url並更新資料庫 4)返回應答,設定頭像成功(注:返回的json中包含頭像完整的url地址)

修改使用者密碼後端業務流程:

1)獲取引數(舊密碼,新密碼)並進行引數校驗 2)校驗使用者輸入的舊密碼是否正確 3)設定使用者的新密碼並更新資料庫 4)返回應答,修改密碼成功 使用者收藏新聞顯示後端業務流程:

1)獲取引數(頁碼)並進行引數校驗 2)查詢使用者收藏的新聞資訊並進行分頁(user.collection_news) 3)使用模板<news/user_collection.html>傳遞資料進行展示

使用者釋出新聞資訊後端業務流程:

1)獲取引數(標題,分類id,摘要,索引圖片,內容)並進行引數校驗 2)將新聞索引圖片上傳至七牛雲平臺 3)建立News物件並儲存新聞資訊(設定新聞的狀態為1:未稽核) 4)將新聞的資訊新增進資料庫 5)返回應答,釋出新聞成功

使用者釋出新聞顯示後端業務流程

1)獲取引數(頁碼)並進行引數校驗 2)查詢使用者釋出的新聞資訊並進行分頁(user.news_list) 3)使用模板<news/user_news_list.html>傳遞資料進行展示

關注和取消關注其他使用者後端業務流程:

1)接收引數(被關注使用者user_id, action)並進行引數校驗 2)根據user_id查詢被關注使用者的資訊 3)根據action執行對應的操作 3.1)如果action==‘do’, 關注使用者 3.2)如果action==‘undo’, 取消關注使用者 4)返回應答,關注或取消關注成功

我的關注資訊顯示後端業務流程:

1)獲取引數(頁碼)並進行引數校驗 2)查詢關注的其他使用者資訊並進行分頁(user.followed) 3)使用模板<news/user_follow.html>傳遞資料進行展示

其他使用者頁面-基本資訊顯示後端業務流程:

1)根據user_id查詢使用者author的資訊 2)判斷當前登入使用者user是否關注的author 3)使用模板<news/others.html>傳遞資料進行展示

其他使用者頁面-新聞列表顯示後端業務流程:

1)獲取頁碼並進行引數校驗 2)根據user_id查詢使用者的資訊 3)獲取作者釋出的新聞資訊並進行分頁 4)返回應答,將當前頁的新聞資訊通過json資料返回