Hướng dẫn Django: Các tính năng, Archikiến trúc & lịch sử

⚡ Tóm tắt thông minh

Django là một phần mềm mã nguồn mở miễn phí. Python Khung web được xây dựng dựa trên mô hình Model-View-Template, cho phép phát triển nhanh chóng các trang web an toàn, có khả năng mở rộng và dựa trên cơ sở dữ liệu thông qua các thành phần có thể tái sử dụng, giao diện quản trị tự động và thiết kế tích hợp đầy đủ tính năng.

  • 🔘 Khung: Django là một ngôn ngữ lập trình cấp cao. Python Khung sườn để xây dựng nhanh chóng các ứng dụng web phức tạp, dựa trên cơ sở dữ liệu.
  • ☑️ Archikiến trúc: Mô hình Model-View-Template (MVT) cho phép Django quản lý bộ điều khiển và tách biệt dữ liệu, logic và phần trình bày.
  • Pin bao gồm: Chức năng quản trị, xác thực, biểu mẫu và quốc tế hóa được tích hợp sẵn giúp loại bỏ hầu hết các công việc thiết lập lặp đi lặp lại.
  • 🛠️ An ninh: Các biện pháp bảo vệ mặc định ngăn chặn các cuộc tấn công CSRF, tấn công kịch bản chéo trang (XSS), tấn công chèn mã độc SQL (SQL injection) và tấn công clickjacking.
  • 🧪 Tỉ lệ: InstagramPinterest, Mozilla và Disqus đều dựa vào Django để xử lý lượng truy cập rất lớn.
  • 🤖 CÓ: Django cung cấp các mô hình học máy dưới dạng API, và các công cụ hỗ trợ như GitHub Copilot giúp tăng tốc quá trình lập trình phía máy chủ.

Hướng dẫn Django cho người mới bắt đầu

Django cung cấp sức mạnh cho một số trang web lớn nhất trên internet trong khi vẫn duy trì...ping Quá trình phát triển hàng ngày diễn ra nhanh chóng và có tổ chức. Trước khi tìm hiểu các tính năng, kiến ​​trúc và lịch sử của nó, các phần bên dưới sẽ bắt đầu với những kiến ​​thức cơ bản về các framework web và điều gì làm cho Django trở nên khác biệt.

Tóm tắt hướng dẫn Django

Hướng dẫn Django này bao gồm tất cả các chủ đề cơ bản từ đầu. Trong hướng dẫn này, bạn sẽ học các khái niệm như Django là gì, lịch sử của nó, các tính năng của nó, đặc điểm của framework Django, các thành phần của Django, ưu điểm và nhược điểm của nó, và nhiều hơn nữa.

Trước khi học Django, chúng ta hãy cùng hiểu rõ:

Khung Web là gì?

Web framework là một thư viện mã giúp bạn xây dựng một trang web, ứng dụng web hoặc dịch vụ web động, linh hoạt, có khả năng mở rộng và dễ bảo trì. Một số web framework khác nhau bao gồm Zend cho PHP, Viên ngọc trên tay vịn Dành cho Ruby và các ngôn ngữ khác.

Django là gì?

Django là một khuôn khổ phát triển web dành cho Python Nó cung cấp các phương pháp tiêu chuẩn để phát triển website nhanh chóng và hiệu quả. Mục tiêu chính của framework web cấp cao này là tạo ra các website phức tạp dựa trên cơ sở dữ liệu. Nó giúp bạn xây dựng và duy trì các ứng dụng web chất lượng. Nó cho phép bạn thực hiện quy trình phát triển một cách suôn sẻ và tiết kiệm thời gian để phát triển nhanh chóng.

Tại sao lại là Django? Ưu điểm chính của Django

Dưới đây là những ưu điểm chính của Django:

  • Django rất dễ cài đặt và vận hành. Nó cung cấp nhiều tùy chọn để bắt đầu.
  • Nó cung cấp giao diện người dùng sẵn sàng sử dụng cho các hoạt động quản trị.
  • Nó cho phép tạo ra các trang web đa ngôn ngữ bằng cách sử dụng hệ thống quốc tế hóa tích hợp sẵn.
  • Nó giúp bạn đáp ứng nhanh chóng nhu cầu lưu lượng truy cập khổng lồ.
  • Django được sử dụng để xây dựng tất cả các loại hệ thống quản lý nội dung, mạng xã hội, cũng như các nền tảng tính toán khoa học.
  • Django giúp bạn thực hiện kiểm thử ứng dụng từ đầu đến cuối.
  • Nó giúp bạn lập tài liệu cho API của mình bằng định dạng HTML.
  • Khung REST hỗ trợ mạnh mẽ nhiều giao thức xác thực khác nhau.
  • Nó cung cấp các chính sách về quyền hạn và giới hạn tốc độ.
  • Nó được sử dụng rộng rãi để giới hạn tốc độ các yêu cầu API từ một người dùng.

Lịch sử của Django

Năm Milestone
2003 Dự án này được Adrian Holovaty và Simon Willison khởi xướng như một dự án nội bộ tại tờ báo Lawrence Journal-World.
2005 Tháng Bảy Nó được phát hành vào tháng 7 năm 2005 với tên gọi "Django", đặt theo tên của nghệ sĩ guitar nhạc jazz Django Reinhardt.
Tháng Sáu 2008 Người ta đã tuyên bố rằng phần mềm Django Foundation (DSF) sẽ duy trì Django.
29 2009 tháng bảy Django 1.1 được phát hành với các tính năng như aggregate và kiểm thử dựa trên giao dịch.
17 Tháng năm, 2010 Django 1.2 đã được phát hành. Bản cập nhật này cung cấp các tính năng như hỗ trợ nhiều cơ sở dữ liệu và hệ thống quản lý email, đồng thời cải tiến phiên làm việc và cookie.
23 Mar 2011 Phiên bản 1.3 đã giới thiệu các tính năng như chế độ xem dựa trên lớp và các tệp tĩnh.
23 Mar 2012 Phiên bản 1.4 được ra mắt với các tính năng mới như múi giờ và kiểm tra trực tiếp trên trình duyệt.
Tháng Hai 26 2013 Phiên bản 1.5 đi kèm với Python 3 tính năng hỗ trợ và mô hình người dùng có thể cấu hình.
Tháng Mười Một 6 2013 Phiên bản 1.6 đi kèm với các tính năng quản lý giao dịch cơ sở dữ liệu và quản lý nhóm kết nối.
2 Tháng Chín 2014 Phiên bản 1.7 có các tính năng mới như tải ứng dụng, di chuyển dữ liệu và cấu hình.
1 2015 tháng tư Hỗ trợ gốc được cung cấp cho nhiều công cụ tạo mẫu.
1 Tháng 12 2015 Trong phiên bản 1.9, tính năng xác thực mật khẩu tự động đã được giới thiệu.
1 Tháng Tám 2016 Trong phiên bản 1.10, tìm kiếm toàn văn cho PostgreSQL đã được đưa ra.
4 2017 tháng tư Phiên bản 1.11 trở thành phiên bản cuối cùng hỗ trợ Python 2.7.
2 Tháng 12 2017 Phiên bản 2.0 trở thành phiên bản đầu tiên Python Phiên bản chỉ phát hành cho 3 thiết bị.
1 Tháng Tám 2018 Phiên bản 2.1 đi kèm với các tính năng hỗ trợ quyền "xem" mô hình.
2021 Đã loại bỏ hỗ trợ cho Django 3.0 và thêm hỗ trợ cho Django 3.2.

Trong hướng dẫn Django dành cho người mới bắt đầu này, chúng ta hãy cùng tìm hiểu về các tính năng của Django.

Đặc điểm của Django

Dưới đây là các tính năng của Django:

  • Giúp bạn xác định các mẫu cho URLtrong đơn đăng ký của bạn.
  • Đơn giản nhưng mạnh mẽ URL hệ thống.
  • Hệ thống xác thực tích hợp.
  • Một cơ sở dữ liệu ngôn ngữ lập trình hướng đối tượng cung cấp khả năng lưu trữ và truy xuất dữ liệu tốt nhất.
  • Tính năng giao diện quản trị tự động cho phép thêm, chỉnh sửa và xóa các mục. Bạn có thể tùy chỉnh bảng điều khiển quản trị theo nhu cầu của mình.
  • Khung bộ nhớ đệm đi kèm với nhiều cơ chế bộ nhớ đệm khác nhau.

Trong bài hướng dẫn về framework Django này, chúng ta sẽ tìm hiểu về các đặc điểm của Django.

Đặc điểm của Django

Dưới đây là những đặc điểm chính của Django:

  • Ghép đôi lỏng lẻo – Django giúp bạn làm cho mỗi thành phần trong ngăn xếp của nó hoạt động độc lập với các thành phần khác.
  • Less mã – Đảm bảo sự phát triển hiệu quả.
  • Không lặp lại – Mọi thứ nên được phát triển tại cùng một địa điểm thay vì lặp lại nhiều lần.
  • Phát triển nhanh – Django cung cấp khả năng phát triển ứng dụng nhanh chóng và đáng tin cậy.
  • Thiết kế nhất quán – Django duy trì thiết kế gọn gàng và giúp dễ dàng tuân theo các nguyên tắc phát triển web tốt nhất.

Tiếp theo trong hướng dẫn dành cho người mới bắt đầu về Django, chúng ta sẽ tìm hiểu về kiến ​​trúc của Django.

Django Archikiến trúc: MVC và MVT

Dưới đây là kiến ​​trúc chi tiết của Django:

Django Archikiến trúc

Django Archikiến trúc

Mẫu MVC

Khi nói về các ứng dụng cung cấp giao diện người dùng (trên web hoặc máy tính để bàn), chúng ta thường đề cập đến kiến ​​trúc MVC. Mô hình MVC dựa trên Model, View và Controller.

Mẫu Định nghĩa cấu trúc dữ liệu và đảm nhiệm việc truy vấn cơ sở dữ liệu.

Xem xác định dữ liệu nào sẽ được trình bày và trả về phản hồi HTTP.

Người điều khiển Đây là phần của ứng dụng chịu trách nhiệm xử lý tương tác người dùng.

Mẫu Django MVC-MVT

Mô hình Model-View-Template (MVT) là một khái niệm khác so với MVC. Sự khác biệt chính giữa hai mô hình kiến ​​trúc này là Django tự quản lý phần Controller (mã phần mềm điều khiển sự tương tác giữa Model và View). Còn template là một tệp HTML được kết hợp với tệp Ngôn ngữ Mẫu Django, hay còn gọi là DTL.

Sơ đồ bên dưới minh họa cách tất cả các thành phần của mô hình MVT tương tác với nhau để đáp ứng yêu cầu cụ thể của người dùng.

Django Archikiến trúc: MVC và MVT

MVT Archikiến trúc

Như sơ đồ trên cho thấy, người dùng yêu cầu một tài nguyên từ Django. Django hoạt động như một bộ điều khiển và kiểm tra xem tài nguyên đó có sẵn hay không. URL.

Nếu URL Trong Maps, một View được gọi để tương tác với Model và Template. Django sau đó phản hồi lại người dùng và gửi một Template làm phản hồi.

Trong loạt bài hướng dẫn Django dành cho người mới bắt đầu này, chúng ta sẽ tìm hiểu về các thành phần của Django.

Các thành phần của Django

Mẫu

Django có thư viện biểu mẫu mạnh mẽ xử lý các biểu mẫu hiển thị dưới dạng HTML. Thư viện giúp xác thực dữ liệu đã gửi và chuyển đổi nó thành Python các loại.

Xác thực

Nó quản lý tài khoản người dùng, nhóm, phiên người dùng dựa trên cookie, và nhiều hơn nữa.

quản trị viên

Nó đọc siêu dữ liệu trong mô hình của bạn để cung cấp giao diện mạnh mẽ có thể được sử dụng để quản lý nội dung trên trang web của bạn.

quốc tế hóa

Django hỗ trợ dịch văn bản sang nhiều ngôn ngữ khác nhau, cũng như định dạng ngày tháng, giờ giấc, số và múi giờ theo từng vùng miền cụ thể.

Bảo mật

Django cung cấp các biện pháp bảo vệ chống lại các cuộc tấn công sau:

  • Yêu cầu trên nhiều trang web giả mạo (CSRF)
  • Tập lệnh trên nhiều trang web
  • SQL injection
  • Nhấp chuột
  • Thực thi mã từ xa

Các công ty nổi tiếng sử dụng Django

Dưới đây là danh sách các công ty đang sử dụng Django:

  • Bitbucket
  • Are On
  • NASA
  • PBS (Dịch vụ phát thanh truyền hình công cộng)
  • Pinterest
  • Instagram
  • Mozilla
  • The Washington Post
  • The New York Times
  • Los Angeles Times
  • The Guardian
  • National Geographic
  • Kênh khám phá

Nhược điểm của việc sử dụng Django

Dưới đây là một số nhược điểm khi sử dụng Django:

  • Một tiến trình duy nhất không thể xử lý nhiều yêu cầu cùng lúc.
  • Django là một công cụ rất nguyên khối.
  • Các thành phần được triển khai cùng nhau, điều này có thể gây nhầm lẫn.
  • Để làm việc với Django, bạn cần nắm vững toàn bộ hệ thống.
  • Nó khiến các thành phần của ứng dụng web liên kết chặt chẽ với nhau.
  • Bạn cần lập trình dài cho các nhiệm vụ nhỏ.

Câu Hỏi Thường Gặp

Django chủ yếu là một framework dành cho phía máy chủ, mặc dù nó thường được mô tả là full-stack vì lớp template của nó cũng xử lý HTML. Nó quản lý logic phía máy chủ, cơ sở dữ liệu, định tuyến và bảo mật, trong khi các template xử lý việc hiển thị trên trình duyệt.

Django là một framework đầy đủ tính năng, tích hợp sẵn ORM, bảng quản trị và hệ thống xác thực. Flask là một microframework nhẹ, tối giản và dựa vào các tiện ích mở rộng cho các tính năng tương tự, giúp các nhà phát triển có nhiều quyền kiểm soát hơn.

Django ORM, hay trình ánh xạ đối tượng-quan hệ, cho phép bạn định nghĩa các bảng cơ sở dữ liệu như sau: Python các lớp và truy vấn chúng bằng Python Mã lệnh thay vì SQL thô. Nó hỗ trợ các cơ sở dữ liệu như... PostgreSQL, MySQL, SQLitevà Oracle.

Chạy lệnh `python -m django –version` tại dòng lệnh hoặc mở tệp cấu hình Django. Python Mở shell và chạy lệnh `import django`, sau đó là `print(django.get_version())`. Cả hai lệnh đều hiển thị số phiên bản Django đã cài đặt.

Middleware là một chuỗi các hook xử lý mọi yêu cầu và phản hồi trên toàn cục. Django sử dụng middleware cho phiên làm việc, xác thực, bảo vệ CSRF và các tiêu đề bảo mật, mỗi phần được thực thi theo thứ tự trước và sau khi view của bạn được thực thi.

Một kiến ​​thức làm việc của Python Kiến thức cơ bản về web như HTTP, HTML và cơ sở dữ liệu là cần thiết. Hiểu biết về lập trình hướng đối tượng sẽ giúp việc học các mô hình Django và các view dựa trên lớp trở nên dễ dàng hơn nhiều.

Đúng vậy. Django thường cung cấp các mô hình học máy thông qua các view hoặc Django REST Framework, hiển thị các dự đoán dưới dạng các điểm cuối API. Một mô hình đã được huấn luyện sẽ được tải một lần khi khởi động và trả về kết quả suy luận cho các máy khách trên web hoặc thiết bị di động.

GitHub Copilot và các trợ lý AI tương tự tự động hoàn thành các model và view của Django, URL Các mẫu, các bài kiểm tra và có thể tạo khung cho các đoạn mã lặp đi lặp lại. Chúng giúp tăng tốc độ phát triển, mặc dù mã được tạo ra luôn cần được xem xét lại về tính bảo mật và tính chính xác.

Tóm tắt bài viết này với: