2.5 KiB
2.5 KiB
Flask簡易任務管理器
這是一個使用 Flask 框架開發的待辦事項管理應用程式。
功能特點
- 用戶註冊和登錄
- 新增、編輯、刪除待辦事項
- 設置任務優先級
- 更新任務狀態
- 搜索任務
- 安全的密碼存儲(使用 bcrypt 加密)
使用技術或語言
- Python
- Flask
- MySQL
- Flask-Bcrypt
- HTML/CSS (前端模板未包含在此代碼中)
安裝步驟
- clone項目
- 安裝所需的 Python 套件:
pip install flask flask-bcrypt mysql-connector-python
- 設置 MySQL 資料庫,並更新程式碼中的資料庫連接資訊
- 執行應用:
python app.py
資料庫結構
應用程式使用兩個主要的資料庫表:
-
users
表:存儲用戶資訊- id (主鍵)
- username
- password (加密存儲)
-
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 模板來完成應用程式
未來改進
- 實現任務分類功能
- 添加任務截止日期
- 實現用戶角色和權限管理
- 添加電子郵件通知功能
- 改進錯誤處理和日誌記錄