Task-management/README.md
2024-10-06 00:38:32 +08:00

106 lines
2.5 KiB
Markdown

# 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`
```sql
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL
);
```
### 創建 `tasks`
```sql
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 模板來完成應用程式
## 未來改進
- 實現任務分類功能
- 添加任務截止日期
- 實現用戶角色和權限管理
- 添加電子郵件通知功能
- 改進錯誤處理和日誌記錄