fbpx Cách tạo trang home trong django? và quy trình tạo trang home Skip to main content
home

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ượng HttpRequest.

  • Hàm render() gọi TemplateResponse để kết hợp request + 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ọi home_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.


diagram

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ơ đồ

  1. User/Browser: Người dùng gửi yêu cầu HTTP tới server (thường là qua trình duyệt).

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

  3. View (views.py): Hàm xử lý logic – nhận request, xử lý, và trả về response.

  4. Template Engine: Hệ thống kết xuất template HTML của Django.

  5. 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 urlpatterns trong urls.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àm home_view trong views.py.

3. View xử lý logic

  • [URLs → View]: Gọi hàm home_view(request) trong views.py.

  • Hàm home_view có 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.html trong thư mục templates/ đã được cấu hình trong settings.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 HttpResponse chứ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.


 

About

Công ty thiết kế web app chuyên thiết kế web và các dịch vụ maketing digital, seo, google adword...