1. 程式人生 > >從0開始 Flask新聞資訊專案 Day1

從0開始 Flask新聞資訊專案 Day1

Flask新聞資訊專案

1.專案介紹

  • 專案分析
  • 框架搭建
  • 藍圖目錄
  • 日誌

前後端不分離,區域性重新整理ajax請求介面,主要業務邏輯目錄結構仿照Django

1.1專案分析

掌握:web應用程式開發流程,常見功能實現,Git使用,原始碼閱讀能力

技術棧:Flask Redis+mysql 七牛雲 雲通訊
Gunicorn+Nginx伺服器

功能模組:新聞 後臺 使用者

具體需求:

1.2 Pycharm VCS

.gitignore是git add 忽略檔案 寫上.idea/ *py[cod] 等等

itcastyinqiaoyin

2.專案配置 資料庫配置

2.1 基本配置

建立Config類
資料庫Sqlalchemy配置
Redis配置
單獨使用表單驗證 CSRF CSRFProtect 傳入app

2.2 Session儲存到redis裡

from flask_session import Session

flask-session是flask框架的session元件,由於原來flask內建session使用簽名cookie儲存,該元件則將支援session儲存到多個地方

Session(app) session讀取app配置
SESSION_TYPE=‘redis’ session儲存在redis
SESSION_USE_SINGER session簽名
SESSION_PERMANENT = True預設不過期
過期時間:PERMANENT_SESSION_LIFETIMEs
SESSION_REDIS= StrictRedis(host= ,port=)
app.config[‘SESSION_KEY_PREFIX’] = ‘session:’ # 儲存到session中的值的字首

Redis重複利用率

2.3資料庫遷徙配置以及flask-script管理app

from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand

Migrate(app,db)關聯資料庫app 遷移

3. 抽取專案配置到單獨檔案

讓manage只做程式入口,不關心配置,配置匯入,不關心檢視函式(藍圖),不關心app建立的相關程式碼

3.1抽取配置檔案

3.2抽取業務邏輯檔案

3.3不同環境 配置

部署開發類繼承於Config,開發環境下配置
部署生產環境類繼承於Config,配置可以不同
測試環境等等多應用環境配置

為了方便可以設定一個配置字典,value是各個環境的類,這樣只需要匯入字典,再輸入相應key就可以取得相應配置

3.4 通過指定配置名字建立對應app

在業務邏輯檔案裡,定義一個建立app的函式,通過傳入的變數,應用不同的環境配置,返滬建立的app

先初始化db = SQLAlchemy()
然後再db.init_app()
在Flask中很多擴充套件裡面都可以先初始化物件,然後再去呼叫init_app來初始化

3.5 日誌簡介

日誌:追蹤軟體執行過程,記錄執行狀態,錯誤資訊,事件也有重要性級別level(開發級別,線上級別)

日誌的使用: