基於Flask框架的簡易任務管理器
Go to file
2024-10-06 00:38:32 +08:00
__pycache__ first commit 2024-10-06 00:38:32 +08:00
.idea first commit 2024-10-06 00:38:32 +08:00
templates first commit 2024-10-06 00:38:32 +08:00
app.py first commit 2024-10-06 00:38:32 +08:00
README.md first commit 2024-10-06 00:38:32 +08:00

Flask簡易任務管理器

這是一個使用 Flask 框架開發的待辦事項管理應用程式。

功能特點

  • 用戶註冊和登錄
  • 新增、編輯、刪除待辦事項
  • 設置任務優先級
  • 更新任務狀態
  • 搜索任務
  • 安全的密碼存儲(使用 bcrypt 加密)

使用技術或語言

  • Python
  • Flask
  • MySQL
  • Flask-Bcrypt
  • HTML/CSS (前端模板未包含在此代碼中)

安裝步驟

  1. clone項目
  2. 安裝所需的 Python 套件:
    pip install flask flask-bcrypt mysql-connector-python
    
  3. 設置 MySQL 資料庫,並更新程式碼中的資料庫連接資訊
  4. 執行應用:
    python app.py
    

資料庫結構

應用程式使用兩個主要的資料庫表:

  1. users 表:存儲用戶資訊

    • id (主鍵)
    • username
    • password (加密存儲)
  2. tasks 表:存儲任務資訊

    • id (主鍵)
    • title
    • description
    • status
    • priority
    • user_id (外鍵,關聯到 users 表)
    • created_at

創建 users

CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    password VARCHAR(255) NOT NULL
);

創建 tasks

CREATE TABLE IF NOT EXISTS tasks (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    title VARCHAR(100) NOT NULL,
    description TEXT,
    status ENUM('待辦', '進行中', '已完成') DEFAULT '待辦',
    priority ENUM('低', '中', '高') DEFAULT '中',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);

路由說明

  • /register: 用戶註冊
  • /login: 用戶登錄
  • /logout: 用戶登出
  • /: 主頁(顯示任務列表)
  • /add_task: 新增任務
  • /edit_task/<task_id>: 編輯任務
  • /delete_task/<task_id>: 刪除任務
  • /update_status/<task_id>/<new_status>: 更新任務狀態

安全性

  • 使用 Flask-Bcrypt 進行密碼加密
  • 實現了登錄裝飾器,確保只有已登錄的用戶才能訪問受保護的路由
  • 使用參數化查詢防止 SQL 注入攻擊

注意事項

  • 在生產環境中部署時,請確保更改 app.secret_key
  • 建議使用環境變數來存儲敏感資訊,如資料庫憑證
  • 此代碼不包含前端模板,您需要創建相應的 HTML 模板來完成應用程式

未來改進

  • 實現任務分類功能
  • 添加任務截止日期
  • 實現用戶角色和權限管理
  • 添加電子郵件通知功能
  • 改進錯誤處理和日誌記錄