Lập Trình Web Chuyên Nghiệp Với Django
Framework dành cho những người cầu toàn với thời hạn gấp rút
Lộ trình 10 bước chinh phục Django
- VD1: Khởi tạo Project & App
- VD2: Tạo View "Hello World"
- VD3: Cấu hình URL Routing
- VD4: Sử dụng Template HTML
- VD5: Truyền dữ liệu sang Template
- VD6: Thiết kế Model (Cơ sở dữ liệu)
- VD7: Trang Quản trị (Django Admin)
- VD8: Truy vấn dữ liệu (ORM Query)
- VD9: Xử lý Form từ người dùng
- VD10: Xây dựng ứng dụng Danh sách việc làm
Kiến trúc MVT (Model - View - Template)
Khác với mô hình MVC thông thường, Django sử dụng kiến trúc MVT giúp tách biệt hoàn toàn giữa dữ liệu, giao diện và logic xử lý.
Chi tiết bài giảng & Ví dụ
Ví dụ 1: Lệnh khởi tạo hệ thống
Trước tiên, bạn cần cài đặt Django và khởi tạo cấu trúc thư mục.
pip install django
django-admin startproject mywebsite .
python manage.py startapp main
django-admin startproject mywebsite .
python manage.py startapp main
- startproject: Tạo bộ khung quản lý web (cài đặt, database).
- startapp: Tạo một "chức năng" cụ thể (như quản lý học sinh, tin tức).
Ví dụ 2: Tạo View đầu tiên (views.py)
main/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Chào mừng bạn đến với Web trường PCT!")
Giải thích: Hàm
index nhận một yêu cầu (request) từ trình duyệt và trả về một phản hồi (response) bằng văn bản thuần túy.
Ví dụ 4: Sử dụng Template HTML
main/templates/index.html
<html>
<body>
<h1>Danh sách môn học</h1>
<ul>
{% for mon in mon_hoc %}
<li>{{ mon }}</li>
{% endfor %}
</ul>
</body>
</html>
Django sử dụng ngôn ngữ Template riêng.
{% ... %} dùng cho logic (vòng lặp, điều kiện) và {{ ... }} dùng để hiển thị biến.
Ví dụ 6: Thiết kế Model (Lớp học)
main/models.py
from django.db import models
class HocSinh(models.Model):
ho_ten = models.CharField(max_length=100)
ngay_sinh = models.DateField()
diem_tb = models.FloatField()
def __str__(self):
return self.ho_ten
Đây là cách Django định nghĩa bảng trong Database bằng mã Python. Bạn không cần viết lệnh SQL, Django sẽ tự động tạo bảng cho bạn qua lệnh
makemigrations.
Ví dụ 7: Kích hoạt trang Admin siêu tốc
main/admin.py
from django.contrib import admin
from .models import HocSinh
admin.site.register(HocSinh)
Chỉ với 2 dòng code, bạn đã có một trang quản trị (Admin Dashboard) chuyên nghiệp để thêm, sửa, xóa học sinh mà không cần code giao diện.
Ví dụ 10: Logic ứng dụng To-Do List hoàn chỉnh
views.py - Final App
from django.shortcuts import render, redirect
from .models import Task
def task_list(request):
tasks = Task.objects.all() # Lấy tất cả công việc
if request.method == "POST":
new_task = request.POST.get("task_name")
Task.objects.create(name=new_task) # Lưu vào DB
return redirect('task_list')
return render(request, 'tasks.html', {'tasks': tasks})
Ví dụ này kết hợp việc lấy dữ liệu từ Database (ORM) và xử lý dữ liệu gửi lên từ người dùng (POST request) để tạo ra một ứng dụng tương tác thực sự.
🎯 Hướng phát triển nâng cao
Sau khi nắm vững 10 ví dụ này, học sinh có thể tự xây dựng trang Tra cứu điểm thi cho nhà trường bằng cách kết hợp Pandas (để nạp dữ liệu từ Excel) vào Django (để hiển thị lên Web).
📌 Danh sách bình luận