1. 程式人生 > >部落格專案需求分析

部落格專案需求分析

# 部落格專案

### 需求分析

- 使用者註冊登入
- 使用者資訊管理
- 部落格發表回覆
- 部落格列表展示
- 部落格分頁展示
- 部落格收藏
- 搜尋、統計、排序、...

### 目錄結構

```
blog/                    # 專案根目錄
    manage.py                # 啟動控制程式碼
    requirements.txt        # 依賴包類表文件
    venv/                    # 虛擬環境目錄
    migrations/                # 資料庫遷移目錄
    tests
/ # 測試模組目錄 app/ # 整個程式目錄 templates/ # 模板檔案目錄 common/ # 通用模板 email/ # 郵件模板 。。。 static/ # 靜態檔案目錄 img/ css/ js
/ favicon.ico views/ # 藍本檔案目錄 models.py # 資料模型檔案 forms.py # 表單類檔案 config.py # 配置檔案 extensions.py # 擴充套件檔案(存放所有擴充套件) email.py # 郵件傳送功能函式 __init__.py # 包檔案 ``` ### 專案準備
- 根據目錄結構,建立相關目錄及檔案 - 書寫配置檔案(就是書寫各種環境的配置類) - 使用工廠方法建立應用例項,並初始化配置 - 新增各種擴充套件(順便貼上郵件傳送函式) - 配置藍本(新增各種藍本檔案,並註冊) - 專案基礎模板定製(順便新增訊息閃爍及測試) ### 使用者管理 - 使用者註冊啟用 - 在基礎模板中新增點選跳轉的連結 - 在藍本中新增對應的檢視函式,渲染指定模板檔案 - 建立使用者註冊的模板檔案 - 設計使用者登錄檔單類,在檢視函式中建立,然後模板檔案中渲染 - 完成使用者註冊的校驗邏輯 - 設計使用者模型類,並完成遷移(別忘記在其他檔案中匯入一次) - 使用者註冊及啟用郵件的傳送流程 - 使用者身份token的攜帶與解析 - 完整的使用者註冊啟用流程 - 使用者登入退出(flask-login) - 說明:flask-login是一個專門用來管理使用者登入退出的擴充套件庫 - 安裝:`pip install flask-login` - 使用: ```python # 第一步:新增擴充套件 from flask_login import LoginManager login_manager = LoginManager() def config_extensions(app): ... login_manager.init_app(app) # 設定登入端點 login_manager.login_view = 'user.login' # 設定登入資訊 login_manager.login_message = '請先登入,然後才能訪問' # 第二步:繼承自UserMixin類(也可以自己實現相關方法) from flask_login import UserMixin class User(UserMixin, db.Model): ... # 第三步:實現回撥 @login_manager.user_loader def load_user(uid): return User.query.get(uid) ``` - 總結 ``` 狀態切換: login_user # 可以提供記住我的功能 logout_user 狀態查詢: is_authenticated 登入狀態 is_anonymous 匿名狀態 路由保護: login_required # 保護需要登入才能訪問的路由 當前使用者: current_user # 哪裡都可以使用,在模板中不需要分配 ``` ### 練習 - 實現使用者資訊的管理