從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(開發級別,線上級別)