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資料返回