Django 02: Kiến trúc tổng quan

Django MVT pattern

Django hỗ trợ mô hình MVT ( Model – View – Template ), nó cũng tương tự như mô hình MVC giúp quản lý và xây dựng dự án phần mềm có hệ thống hơn.

Chu trình của một request: Khi django nhận được một một request, dựa vào URL sẽ quyết định view nào sẽ được sử dụng. View sẽ thao tác với Model lấy dữ liệu từ database sau đó gửi các dữ liệu cần thiết tới Template để Template tạo ra file html và gửi về View sau đó trả về cho người dùng.

Django Apps

Ở phần trước ta đã tạo được một django project với cấu trúc:

  • Thư mục bookshop ngoài cùng không liên quan gì đến code ta có thể thay đổi tên thư mục này thoải mái.
  • manage.py: một CLI giúp ta tương tác nhanh với code Django
  • bookshop/__init__.py: Để chỉ cho python rằng thư mục này là một package.
  • bookshop/settings.py: Chứa các cấu hình của project
  • bookshop/urls.py: Định nghĩa các URL của project.
  • bookshop/wsgi.py: Dùng để deploy project của ta lên Server.

Một project django là một tập hợp của nhiều applications. Mỗi application có một nhiệm vụ xác định và có thể tái sử dụng trong nhiều project khác nhau. Ví dụ như “django.contrib.auth” application có nhiệm vụ xác thực có thể được sử dụng trong nhiều projects.

Tạo một application

Tại thư mục gốc của project (chứu file manage.py), để tạo một application với tên là “book” ta chạy câu lệnh:

Django sẽ tự động tạo cho chúng ta thư mục “book” với cấu trúc như sau:

  • __init__.py:   Để chỉ cho python rằng thư mục này là một package.
  • admin.py: File giúp ta tạo các có thể thay đổi được trong trang quản trị
  • models.py: File chứa mã code của model
  • tests.py: File chứa mã code của unit tests
  • views.py: Nới chứa các mã code của view.

Và để project sử dụng được application ta phải khai báo nó trong file settings.py:

Hello world!

Chúng ta sẽ thử viết một trang Helloworld đơn giản.

bookshop/book/views.py

bookshop/bookshop/urls.py

Chạy server:

Truy cập vào địa chỉ: http://localhost:8000/hello/ để xem kết quả

Chú ý: Sử dụng lệnh python3 manage.py runserver chỉ để chạy server cho việc dev, không chạy cho production.

The following two tabs change content below.

Latest posts by Cuong Nguyen (see all)