Full-Stack WebThời lượng: ~30 giờCấp độ: Nâng cao

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

Tiến độ các Chặng kiểm tra:0/10 (0%)
Kiến thức cần biết trước (Prerequisites)
  • 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)
Mục tiêu đầu ra của dự án
  • 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.
LƯU Ý VỀ MÔI TRƯỜNG THỰC THI WEB SERVER: - Trong CodeCoBUG: Để đảm bảo an toàn tuyệt đối theo chuẩn bảo mật điện toán (Zero Untrusted Code Execution on Main Server), bạn sẽ thực hành và được chấm điểm tự động từng thành phần kiến trúc web (Cấu hình Settings, Định tuyến URL, Thiết kế Model, Xử lý Form, Logic View và Phân quyền @login_required) thông qua Judge Engine. - Chạy máy chủ Web cục bộ (Local Development Server): Django là web server độc lập. Bạn có thể dễ dàng khởi chạy máy chủ phát triển cục bộ (localhost:8000) trên máy tính cá nhân chỉ với 2 câu lệnh pip và python manage.py runserver theo hướng dẫn dưới đây.
Hướng dẫn thiết lập và chạy trên máy tính cá nhân (Local Guide)

Để 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:

# 1. Tạo thư mục và môi trường ảo
mkdir learning_log && cd learning_log
python3 -m venv .venv
source .venv/bin/activate
# 2. Cài đặt Django và các tiện ích
pip install django django-bootstrap5
# 3. Khởi tạo dự án và tạo bảng database
django-admin startproject ll_project .
python manage.py migrate
$ python manage.py runserver
📁 Cấu trúc thư mục dự án khuyến nghị:
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)

Hoàn thành từng chặng để mở khóa tiếp
1

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.

Mục tiêu chặng:
  • 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.

Cần xong Chặng 1

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().

Cần xong Chặng 2

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" %}.

Cần xong Chặng 3

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).

Cần xong Chặng 4

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.

Cần xong Chặng 5

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.

Cần xong Chặng 6

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.

Cần xong Chặng 7

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.

Cần xong Chặng 8

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.

Cần xong Chặng 9