Skismail57/Django-To-Do-List_with_User_Authentication
GitHub: Skismail57/Django-To-Do-List_with_User_Authentication
一个基于 Django 的全栈待办事项应用,集成了用户身份验证、任务增删改查及容器化部署支持。
Stars: 1 | Forks: 0
# 🚀 带有用户身份验证的 Django To-Do List
# 📝 Django 待办事项列表
一个安全的基于 Django 的 To-Do List 应用程序,具备用户身份验证、任务管理和响应式设计。功能包括用户注册、登录/登出、任务的 CRUD 操作以及自定义错误页面。使用 Django 5.0、HTML5、CSS3 构建,并支持 SQLite/PostgreSQL。已准备好通过 Docker 进行部署。









## 💡 概述
一个使用 Django 构建的安全高效的任务管理解决方案,具备强大的用户身份验证、任务 CRUD 操作和响应式界面。此应用程序展示了使用 Django 进行现代 Web 开发的实践,包括表单处理、用户身份验证和数据库管理。
## ✨ 功能
- **安全的身份验证系统**
- 使用邮箱/密码进行用户注册和登录
- 密码重置功能
- 会话管理和安全性
- **任务管理**
- 创建、读取、更新和删除任务
- 将任务标记为已完成/未完成
- 任务过滤和组织
## 📸 截图
### 管理员界面
#### 管理员控制台

*管理员界面概览,显示所有可管理的模型*
#### 添加新任务 (管理员)

*用于添加新任务的管理员界面*
#### 编辑任务 (管理员)

*用于修改任务详情的管理员界面*
#### 用户权限

*用于管理用户权限和组的管理员视图*
### 用户界面
#### 任务列表

*主要任务列表,显示用户的所有任务及其完成状态*
#### 创建新任务

*用于向列表中添加新任务的表单*
#### 管理员登录

*供管理员使用的安全登录界面*
#### 添加分类 (管理员)

*用于管理任务分类的管理员界面*
- 安全的密码哈希处理
- 防范 SQL 注入
- XSS 防护
## 🛠️ 技术栈
- **前端**: HTML5, CSS3, JavaScript
- **后端**: Django 5.0
- **数据库**: SQLite (支持 PostgreSQL/MySQL)
- **身份验证**: Django 内置身份验证系统
- **部署**: Docker, 已准备好支持 Kubernetes
- **其他工具**:
- WhiteNoise (用于静态文件)
- python-decouple (用于环境变量)
- Waitress 生产级服务器
## 📋 环境要求
- Python 3.8+
- pip (Python 包管理器)
- MySQL/PostgreSQL (可选,默认使用 SQLite)
- Docker (用于容器化)
## 🚀 快速开始
### 前置条件
1. **克隆仓库**
git clone https://github.com/Skismail57/DjangoTo-DoListwithUserAuthentication.git
cd DjangoTo-DoListwithUserAuthentication
2. **设置虚拟环境**
python -m venv venv
source venv/bin/activate # 在 Windows 上: venv\Scripts\activate
3. **安装依赖项**
pip install -r requirements.txt
4. **配置环境变量**
在项目根目录下创建一个 `.env` 文件:
DEBUG=True
SECRET_KEY=your-secret-key-here
ALLOWED_HOSTS=localhost,127.0.0.1
5. **执行数据库迁移**
python manage.py migrate
6. **创建超级用户**
python manage.py createsuperuser
7. **启动开发服务器**
python manage.py runserver
8. **访问应用程序**
- 前端: http://127.0.0.1:8000/
- 管理面板: http://127.0.0.1:8000/admin/
## 🏗️ 项目结构
```
DjangoTo-DoListwithUserAuthentication/
├── .github/ # GitHub workflows and templates
├── static/ # Static files (CSS, JS, images)
│ ├── css/
│ │ └── style.css
│ └── js/
├── staticfiles/ # Collected static files
├── templates/ # HTML templates
│ ├── todos/ # App-specific templates
│ │ ├── base.html
│ │ ├── task_list.html
│ │ └── task_form.html
│ └── registration/ # Authentication templates
│ ├── login.html
│ ├── signup.html
│ └── password_reset.html
├── todolist/ # Project settings
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── todos/ # Main app
│ ├── migrations/ # Database migrations
│ ├── static/ # App-specific static files
│ ├── templates/ # App templates
│ ├── __init__.py
│ ├── admin.py # Admin configurations
│ ├── apps.py # App configurations
│ ├── forms.py # Form definitions
│ ├── models.py # Database models
│ ├── urls.py # URL routing
│ └── views.py # View functions
├── .env # Environment variables
├── .gitignore
├── Dockerfile # Docker configuration
├── manage.py # Django management script
├── requirements.txt # Python dependencies
├── docker-compose.yml # Docker Compose configuration
└── README.md # This file
```
## 🚀 部署
### Docker 部署
1. 使用 Docker Compose 构建并运行:
docker-compose up --build
### Kubernetes 部署
1. 应用 Kubernetes 配置:
kubectl apply -f k8s/
## 🔮 未来改进
- [ ] 任务分类和标签
- [ ] 用户之间的任务共享
- [ ] 截止日期和提醒
- [ ] 任务优先级
- [ ] 深色模式
- [ ] 用于移动应用程序的 REST API
- [ ] 使用 WebSockets 进行实时更新
- [ ] 任务导出 (PDF, CSV)
- [ ] 任务的日历视图
- [ ] 任务评论和附件
## 📄 许可证
本项目基于 [MIT License](LICENSE) 授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
**版权所有 © 2025 K Ismail**标签:Django, Docker, 任务管理, 子域名突变, 安全防御评估, 数据可视化, 测试用例, 用户认证, 请求拦截, 逆向工具