Python được coi là ngôn ngữ nhập môn tuyệt vời cho những lập trình viên chưa bao giờ thử lập trình. Mặt khác, Django là một khung web dựa trên Python cho phép phát triển các ứng dụng Web với một số dòng mã nhỏ.
Như với bất kỳ dự án phần mềm lớn nào, Django chứa rất nhiều khái niệm, tính năng và công cụ cũng như phạm vi của các vấn đề mà nó được tạo ra để giải đáp, đặc biệt là phát triển Web. Để bắt đầu hiểu cách sử dụng Django cụ thể, trước tiên bạn phải hiểu những vấn đề này, và khung Django ở đây để giải quyết chúng.
HTTP (Giao thức truyền tải siêu văn bản) gói gọn quy trình hoàn chỉnh để phục vụ các trang Web và đóng vai trò là nền tảng của Web. Là một giao thức giao tiếp máy khách-máy chủ, HTTP bao gồm chủ yếu các yêu cầu (từ máy khách đến máy chủ) và câu trả lời (máy chủ đến máy khách)
Những gì xảy ra trên máy chủ giữa chúng không chịu sự quản lý của HTTP và là trách nhiệm của phần mềm máy chủ.
Ý tưởng yêu cầu bao gồm giai đoạn đầu của quy trình, bao gồm việc máy khách yêu cầu một tài liệu nhất định từ máy chủ. URL—"đường dẫn" đến tài liệu được yêu cầu—là cốt lõi của yêu cầu, nhưng nó có thể được tùy chỉnh thêm bằng nhiều phương pháp khác nhau, cho phép một vị trí hoặc URL duy nhất hiển thị nhiều hành vi.
Một phản hồi bao gồm phần lớn nội dung - thường là văn bản của một trang Web - và các tiêu đề liên quan cung cấp thông tin bổ sung về dữ liệu, chẳng hạn như khi nó được cập nhật lần cuối, thời gian lưu trữ cục bộ, loại nội dung của nó, v.v. Khác nội dung không phải HTML có thể được cung cấp để phản hồi bao gồm văn bản thuần túy, ảnh, tài liệu (PD Word, Excel, v.v.), clip âm thanh, v.v.
Cả yêu cầu và câu trả lời đều được Django biểu diễn dưới dạng các đối tượng Python tương đối đơn giản với các thuộc tính cho nhiều loại dữ liệu và phương thức cho các hoạt động nâng cao hơn.
Nói một cách đơn giản, Web là về truyền dữ liệu hoặc chia sẻ nội dung (có nghĩa là bất kỳ thứ gì, bao gồm các bài đăng trên blog, dữ liệu tài chính và sách điện tử). Trong những ngày đầu của Web, nội dung bao gồm các tệp văn bản HTML được viết thủ công được lưu trên đĩa của máy chủ. Điều này được gọi là tĩnh vì các yêu cầu đến cùng một URL luôn trả về cùng một dữ liệu. "Con đường" đã nêu trước đây là cơ bản hơn; không có tham số, vì nó chỉ đơn giản là đường dẫn trên hệ thống tệp của máy chủ nơi chứa nội dung tĩnh. Hiện tại, phần lớn tài liệu được coi là động vì dữ liệu được cung cấp bởi một URL nhất định có thể dao động đáng kể dựa trên nhiều biến số.
Một phần đáng kể của bản chất động này có thể thực hiện được bằng cách lưu trữ dữ liệu trong cơ sở dữ liệu, trong đó, thay vì một chuỗi văn bản, người ta có thể tạo nhiều phần dữ liệu và liên kết chúng lại với nhau để hiển thị các mối quan hệ. SQL (Ngôn ngữ truy vấn có cấu trúc) được sử dụng để xác định và truy vấn cơ sở dữ liệu và thường được trừu tượng hóa thêm bằng ORM (Trình ánh xạ quan hệ đối tượng), cho phép các ngôn ngữ lập trình hướng đối tượng biểu diễn cơ sở dữ liệu dưới dạng các đối tượng mã.
Cơ sở dữ liệu SQL được tổ chức thành các bảng, với mỗi bảng chứa các hàng (chẳng hạn như mục nhập, mục và đối tượng) và cột (chẳng hạn như thuộc tính và trường), tương tự như bảng tính. Django cung cấp một ORM mạnh mẽ trong đó các lớp Python đại diện cho các bảng, các đối tượng đại diện cho các hàng cụ thể trong các bảng đó và các cột của bảng là thuộc tính của các đối tượng.
Bước 3: Trình bày: Định dạng Mẫu trong HTML và các Định dạng khác
Cách hiển thị hoặc định dạng thông tin được yêu cầu và/hoặc được trả về qua HTTP và được truy vấn từ cơ sở dữ liệu SQL là phần cuối cùng của bài toán phát triển Web. Điều này thường được thực hiện bằng HTML (Ngôn ngữ đánh dấu siêu văn bản) hoặc người anh em gần đây hơn, giống như XML là XHTML, cũng như các ngôn ngữ của JavaScript cho chức năng phía trình duyệt động và CSS (Cascading Style Sheets) cho kiểu trực quan. Kích hoạt nội dung động trong các ứng dụng hiện đại là JSON (định dạng dữ liệu "nhẹ") và XML.