Django 03: View và Template

Nguồn: http://cloudera.com/

Django View:

Một hàm view (hoặc view) đơn giản là một hàm python nhận Web request làm tham số đầu tiên và trả về Web response. Response có thể là nội dung HTML, redirect, 404 error, XML document, hoặc image, … View chứa các logic cần thiết để trả về response và có thể ở bất kì đâu ta muốn miễn là nằm trên Python path. Nhưng để dễ dàng quản lí chúng ta sẽ đặt các mã nguồn của view trong file views.py của mỗi application.

Tạo một view đơn giản.

Trong bài trước chúng ta đã tạo một view đơn giản

  • Đầu tiên chúng ta import class HttpResponse trong django.http module
  • Tiếp đến định nghĩa function với tên index. Đây gọi là view function. Mỗi view function nhận HttpRequest object là tham số
  • View trả về một HttpResponse object

Mapping URLs tới views

Để hiển thị view trên tại một url cụ thể chúng ta cần tạo một URLConf. URLConf là một module Python của Django làm nhiệm vụ phân tích đường dẫn và chuyển đến một hàm View nhất định.

Chúng ta đã tạo URL mapping ở file bookshop/urls.py

urlpatterns là list routes URLs tới view với mỗi phần tử là một hàm url. Hàm url nhận tham số đầu tiên là mẫu pattern của url, tham số thứ 2 là view function. Chi tiết về URLConf sẽ được giới thiệu sau.

Class-bass view

Một view cũng có thể là class, nó giúp ta sử dụng lại code bằng inheritance và mixins, tổ chức code có liên kết với HTTP method . Django cũng cung cấp một số view class có sẵn cho một số nhiệm vụ đơn giản

Để sử dụng class base view, đầu tiên ta tạo một class ở trong views.py

 

Method get sẽ được gọi khi http method là get tương tự như vậy đối với post, delete, …

Ở file urls.py

Truy cập đường dẫn:
http://localhost:8000/hello-class/

ta cũng được kết quả tương tự.

Django Template

Template được sử dụng để tách biệt giữa phần xử lí logic và giao diện. Template chứa các phần tĩnh của đầu ra HTML mong muốn và một số cú pháp đặc biệt giúp chèn các nội dung động vào hmtl.

Để sử dụng được template ta cần config trong file settings.py

Chú ý config ‘DIRS’: [“templates”] cấu hình tên thư mục chứa template

Sau đó tạo thư mục templates ở root project. Trong thư mục template tạo thư mục book, trong thư mục book tạo file index.html với nội dung:

Sửa lại hàm index() trong file views.py

  • Đầu tiên chúng ta sẽ load template sử dụng hàm get_template (có tham số là đường dẫn tới file html tính từ thư mục templates)
  • Tạo context (các biến trong context sẽ được sử dụng ở file template)
  • Gọi hàm template.render

Truy cập lại đường dẫn cũ và xem kết quả.

The following two tabs change content below.

Latest posts by Cuong Nguyen (see all)