Dự án 03: Ứng dụng Web Full-Stack với Django
Xây dựng ứng dụng web quản lý nhật ký học tập Learning Log chuẩn công nghiệp: Models, Views, Templates, Authentication và Deployment
- Chương 01 - 10: Toàn bộ nền tảng Python (Hàm, Cấu trúc dữ liệu, Files & Ngoại lệ)
- Chương 11: Lập trình hướng đối tượng OOP (Class, Method, Kế thừa)
- Hiểu biết cơ bản về giao thức Web (HTTP, HTML, CSS)
- Làm chủ kiến trúc Model - View - Template (MVT) tiêu chuẩn của Framework Web Django.
- Thiết kế cơ sở dữ liệu quan hệ (Relational Database) với Django ORM: Models, Migrations và khóa ngoại ForeignKey.
- Kỹ thuật kế thừa giao diện Template inheritance với base.html và Bootstrap 5.
- Bảo mật biểu mẫu với Django ModelForms, xác thực dữ liệu đầu vào và chống tấn công CSRF.
Để trải nghiệm đầy đủ giao diện gốc (cửa sổ đồ họa Pygame 60 FPS hoặc máy chủ Web Django cục bộ), bạn chỉ cần mở Terminal trên máy cá nhân và thực thi các câu lệnh sau:
learning_log/ ├── manage.py ├── ll_project/ │ ├── settings.py │ └── urls.py ├── learning_logs/ │ ├── models.py │ ├── views.py │ └── forms.py └── accounts/
Danh sách Chặng kiểm tra (Checkpoints)
Checkpoint 1: Giới thiệu Django & Khởi tạo dự án Web (Architecture & Settings)
Làm quen với Django Framework, cấu trúc tệp manage.py, thiết lập INSTALLED_APPS và kiểm tra cấu hình dự án trong settings.py.
- Hiểu triết lý thiết kế "Batteries-included" của Django: có sẵn ORM, Admin, Authentication, CSRF protection.
- Khái niệm dự án (Project) và ứng dụng con (App) trong kiến trúc Django.
- Đăng ký ứng dụng mới vào danh sách INSTALLED_APPS trong settings.py.
Checkpoint 2: Mô hình Request / Response & Định tuyến URLs (URLconf)
Tìm hiểu chu kỳ tuần hoàn HTTP Request -> URL Routing -> View, sử dụng hàm path() và đặt tên name parameter để liên kết linh hoạt.
Checkpoint 3: Xây dựng Views xử lý nghiệp vụ và truy vấn dữ liệu
Viết hàm View nhận đối tượng request, truy vấn dữ liệu từ cơ sở dữ liệu, đóng gói vào Context Dictionary và truyền sang Template bằng hàm render().
Checkpoint 4: Hệ thống Giao diện Templates & Kế thừa bố cục (base.html)
Làm quen với Django Template Language (DTL): cú pháp thẻ biến {{ variable }}, thẻ khối {% block content %}, và kỹ thuật kế thừa {% extends "base.html" %}.
Checkpoint 5: Thiết kế Database & Django Models (Topic & Entry ForeignKey)
Định nghĩa các lớp Model trong models.py kế thừa models.Model, thiết lập trường CharField, DateTimeField, TextField và quan hệ khóa ngoại ForeignKey (1-to-N).
Checkpoint 6: Xử lý biểu mẫu dữ liệu CRUD với Django ModelForms
Tạo lớp forms.ModelForm, xử lý hai luồng phương thức HTTP (GET hiển thị form trống, POST nhận dữ liệu, kiểm tra is_valid(), lưu form.save()) và thẻ bảo mật CSRF.
Checkpoint 7: Hệ thống Xác thực Authentication (Login, Logout & Registration)
Xây dựng ứng dụng con accounts, sử dụng hệ thống URLs có sẵn của django.contrib.auth, và biểu mẫu đăng ký thành viên mới UserCreationForm.
Checkpoint 8: Quản lý tài khoản & Phân quyền bảo mật (@login_required & Data Isolation)
Gắn trường owner vào Model Topic, sử dụng decorator @login_required để bảo vệ các trang riêng tư, và kiểm tra quyền sở hữu topic.owner == request.user để ngăn truy cập trái phép.
Checkpoint 9: Kiểm thử tự động Testing ứng dụng Web (Django TestCase & Client)
Viết các bài Unit Test tự động kế thừa django.test.TestCase, sử dụng Test Client giả lập gửi HTTP Request và kiểm tra mã trạng thái response.status_code == 200.
Checkpoint 10: Quy chuẩn Triển khai ứng dụng lên Đám mây (Production Readiness)
Nắm vững các nguyên tắc bảo mật và cấu hình khi triển khai dự án Django lên môi trường sản xuất (Production): tắt DEBUG, cấu hình biến môi trường SECRET_KEY, và cơ sở dữ liệu PostgreSQL.