0
0
Lập trình
Admin Team
Admin Teamtechmely

Giải thích cấu trúc dự án và ứng dụng Django

Đăng vào 1 tuần trước

• 4 phút đọc

Giới thiệu

Django là một framework phát triển web mạnh mẽ dựa trên Python, nổi bật với việc tách biệt rõ ràng các thành phần trong ứng dụng. Điều này không chỉ giúp dễ dàng trong việc duy trì mã nguồn mà còn tạo điều kiện cho việc phát triển nhanh chóng và hiệu quả. Trong bài viết này, chúng ta sẽ tìm hiểu sâu hơn về cấu trúc dự án, ứng dụng, mô hình, view, URL, template và migrations thông qua một ví dụ thực tế. Cuối cùng, bạn sẽ có một dự án hoạt động hoàn chỉnh với template được render chính xác.

Cấu trúc Dự án và Ứng dụng Django

Dự án vs Ứng dụng

  • Dự án: Là cấu hình tổng thể của Django, chứa các thiết lập, routing URL và các cấu hình cần thiết cho ứng dụng.
  • Ứng dụng: Là một module bên trong dự án, được thiết kế cho một mục đích cụ thể. Bạn có thể có nhiều ứng dụng trong một dự án. Ví dụ:
Copy
mysite/ # Dự án
├── manage.py
├── mysite/ # Thư mục cấu hình dự án
└── blog/ # Thư mục ứng dụng

Bạn có thể có nhiều ứng dụng như users, payments hay products dưới cùng một dự án.

Giải thích cấu trúc dự án

Khi bạn chạy lệnh django-admin startproject mysite, bạn sẽ nhận được cấu trúc sau:

Copy
mysite/
├── manage.py
└── mysite/
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

Phân tích các file trong dự án:

  • manage.py: Công cụ dòng lệnh để chạy server, tạo ứng dụng, áp dụng migrations, mở shell Django, v.v.
  • settings.py: Cấu hình trung tâm (CSDL, ứng dụng đã cài đặt, middleware, khóa bảo mật).
  • urls.py: Router URL chính; ánh xạ các đường dẫn tới các view.
  • wsgi.py / asgi.py: Điểm nhập cho việc triển khai (được sử dụng bởi các server sản xuất).

Tạo ứng dụng đầu tiên

Chạy lệnh sau để tạo ứng dụng:

Copy
python manage.py startapp blog # (blog -> tên ứng dụng, bạn có thể thay đổi tên ứng dụng)

Điều này sẽ tạo ra cấu trúc thư mục sau:

Copy
blog/
├── admin.py
├── apps.py
├── migrations/
├── models.py
├── tests.py
└── views.py

Thêm ứng dụng mới tạo vào INSTALLED_APPS trong settings.py:

Copy
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog', # thêm tên ứng dụng của bạn vào đây.
]

Thêm Views & URLs

Trong blog/views.py, thêm mã sau:

Copy
from django.shortcuts import render

def home(request):
    return render(request, 'blog/home.html')

Tạo file blog/urls.py:

Copy
from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
]

Bao gồm URL của ứng dụng vào URL của dự án (mysite/urls):

Copy
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
]

Cấu hình Templates

Cấu trúc thư mục (Templates cấp ứng dụng):

Copy
blog/
├── templates/
    └── blog/
        └── home.html

Ví dụ file home.html:

Copy
<!DOCTYPE html>
<html>
<head>
    <title>Trang Django đầu tiên của tôi</title>
</head>
<body>
    <h1>Chào mừng đến với Blog của tôi!</h1>
    <p>Trang này được cung cấp bởi các template của Django.</p>
</body>
</html>

Cấu hình settings.py:

Đảm bảo rằng APP_DIRS=True:

Copy
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [], # để trống cho template cấp ứng dụng
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

Bây giờ render(request, 'blog/home.html') sẽ tìm thấy template.

Migrations & Cơ sở dữ liệu

Chạy lệnh:

Copy
python manage.py migrate

Chạy server

Chạy lệnh:

Copy
python manage.py runserver

Tóm tắt

Trong bài viết này, chúng ta đã:

  • Hiểu được sự khác biệt giữa dự án và ứng dụng.
  • Tìm hiểu về các file trong dự án và chức năng của chúng.
  • Tạo một ứng dụng và thêm views, urls, và templates.
  • Cấu hình chính xác settings.py và render một template.
  • Chạy migrations và khởi động server.

Những lưu ý và mẹo thực hành

  • Thực hành tốt: Luôn giữ mã nguồn rõ ràng và có tổ chức, sử dụng các tên gọi dễ hiểu cho các ứng dụng và mô-đun.
  • Tránh sai lầm phổ biến: Không quên thêm ứng dụng vào INSTALLED_APPS, điều này có thể gây ra lỗi không tìm thấy ứng dụng.
  • Mẹo hiệu suất: Sử dụng caching cho các view phức tạp để tăng tốc độ phản hồi.

Câu hỏi thường gặp (FAQ)

  • Django có thể sử dụng cho ứng dụng nào?
    Django có thể được sử dụng cho nhiều loại ứng dụng web khác nhau, từ hệ thống quản lý nội dung đến ứng dụng thương mại điện tử.
  • Mất bao lâu để học Django?
    Thời gian học phụ thuộc vào kinh nghiệm lập trình của bạn. Đối với người mới bắt đầu, có thể mất từ vài tuần đến vài tháng để nắm vững nền tảng.

Kết luận

Django cung cấp một cách tiếp cận mạnh mẽ để phát triển web với cấu trúc rõ ràng và dễ duy trì. Hy vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về cấu trúc dự án và ứng dụng Django. Hãy bắt đầu xây dựng những ứng dụng tuyệt vời với Django ngay hôm nay!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào