Cách tạo trang home trong django? và quy trình tạo và hiển thị một trang home.html
1. Giới thiệu
Django là một framework web theo mô hình MVT (Model - View - Template), trong đó Template là nơi trình bày giao diện, View là logic xử lý, và URLconf là thành phần ánh xạ URL đến các view tương ứng.
Trong bài này, chúng tôi mô tả quy trình tạo và hiển thị một trang home.html, phân tích chi tiết quy trình gọi hàm từ trình duyệt cho đến việc hiển thị giao diện, theo kiến trúc của Django.
2. Cấu trúc thư mục (liên quan)
foodonline/
├── foodOnline_main/
│ ├── views.py ← View định nghĩa hàm xử lý
│ ├── urls.py ← Định tuyến URL đến view
│ └── settings.py ← Cấu hình DIRS cho template
├── templates/
│ └── home.html ← Tệp giao diện HTML
└── manage.py
3. Quy trình thiết lập và gọi hàm (Call Flow)
3.1. Bước 1 – Khai báo đường dẫn Template
Trong settings.py:
import os
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], # ← Thêm thư mục templates
...
},
]
📌 Ý nghĩa: Cho Django biết nơi tìm kiếm các file HTML (template).
3.2. Bước 2 – Tạo file template home.html
<!-- templates/home.html -->
<!DOCTYPE html>
<html>
<head>
<title>Trang chủ</title>
</head>
<body>
<h1>Hello 2026 - Đây là trang chủ</h1>
</body>
</html>
📌 Ý nghĩa: Đây là giao diện tĩnh sẽ được hiển thị cho người dùng.
3.3. Bước 3 – Tạo View xử lý trong views.py
# foodOnline_main/views.py
from django.shortcuts import render
def home_view(request):
return render(request, 'home.html')
✅ Phân tích lời gọi hàm:
-
Hàm
home_view()nhận vào một đối tượngHttpRequest. -
Hàm
render()gọiTemplateResponseđể kết hợprequest+home.html→ tạo HTML hoàn chỉnh. -
Sau đó trả về
HttpResponse.
3.4. Bước 4 – Định tuyến URL trong urls.py
# foodOnline_main/urls.py
from django.contrib import admin
from django.urls import path
from .views import home_view
urlpatterns = [
path('admin/', admin.site.urls),
path('', home_view, name='home'), # ← Ánh xạ URL gốc tới view
]
📌 Ý nghĩa:
-
Khi người dùng truy cập
/, Django gọihome_view().
4. Luồng xử lý chi tiết (Call Flow Diagram)
Trình duyệt gửi GET /
↓
urls.py → tìm path '' → gọi home_view()
↓
home_view() → gọi render(request, 'home.html')
↓
Django tìm file home.html trong DIRS của settings.py
↓
Render template + trả về HTML
↓
Trình duyệt hiển thị trang "Hello 2026"
5. Kết luận
Thông qua việc cài đặt và gọi trang home.html, ta đã vận dụng đúng quy trình:
-
Cấu hình
TEMPLATES -
Tạo view xử lý logic
-
Tạo giao diện tương ứng
-
Định tuyến URL đến view
Quy trình này phản ánh rõ ràng mô hình MVT trong Django, đồng thời đảm bảo kiến trúc có thể mở rộng cho các module phức tạp hơn sau này.
Lược đồ bạn gửi là UML Sequence Diagram (Lược đồ trình tự UML). Đây là sơ đồ thể hiện trình tự các lời gọi hàm (messages) giữa các thành phần (objects/classes) trong hệ thống khi xử lý một request đến trang home.html trong Django. Sau đây là giải thích chi tiết quy trình hoạt động của lược đồ này theo kiến thức hàn lâm:
🧩 Các thành phần trong sơ đồ
-
User/Browser: Người dùng gửi yêu cầu HTTP tới server (thường là qua trình duyệt).
-
URLs Dispatcher (urls.py): Bộ định tuyến URL của Django – định nghĩa các URL và ánh xạ tới view tương ứng.
-
View (views.py): Hàm xử lý logic – nhận request, xử lý, và trả về response.
-
Template Engine: Hệ thống kết xuất template HTML của Django.
-
home.html: Giao diện người dùng – là file HTML được render trả về.
🛠 Quy trình hoạt động chi tiết
1. User yêu cầu truy cập trang chủ
-
[User → URLs]: Trình duyệt gửi yêu cầu HTTP GET tới
http://127.0.0.1:8000/.
2. URLs Dispatcher tiếp nhận và định tuyến
-
URLs Dispatcher kiểm tra danh sách
urlpatternstrongurls.py. -
Tìm thấy một dòng như:
path('', views.home_view, name='home') -
→ Điều này ánh xạ URL
/tới hàmhome_viewtrongviews.py.
3. View xử lý logic
-
[URLs → View]: Gọi hàm
home_view(request)trongviews.py. -
Hàm
home_viewcó thể như sau:def home_view(request): return render(request, 'home.html') -
Hàm này gửi yêu cầu tới Template Engine để render file
home.html.
4. Template Engine kết xuất nội dung
-
[View → Template Engine]: Gửi yêu cầu render
home.html. -
Template Engine tìm file
home.htmltrong thư mụctemplates/đã được cấu hình trongsettings.py:'DIRS': [BASE_DIR / "templates"],
5. Template Engine trả về HTML
-
[Template Engine → View]: Sau khi render xong, trả lại đoạn HTML.
6. View trả về HTTP Response
-
[View → URLs Dispatcher → Browser]: Trả về đối tượng
HttpResponsechứa nội dung HTML được kết xuất từhome.html.
7. Trình duyệt hiển thị
-
Trình duyệt nhận response và hiển thị nội dung
home.html.
📌 Kết luận (theo học thuật)
-
Đây là quy trình theo mô hình MVC (Model-View-Controller) mở rộng mà Django sử dụng.
-
View đóng vai trò là Controller, xử lý request và điều hướng đến template.
-
Template Engine là nơi xử lý giao diện người dùng (View trong MVC gốc).
-
URLs Dispatcher giúp tách biệt rõ ràng giữa route và logic xử lý, phù hợp với nguyên lý Separation of Concerns trong kiến trúc phần mềm.