Django (khung web) – Wikipedia

Khung web Python

Django ( JANG -goh ; được cách điệu thành django ) [5] là một nguồn mở và miễn phí dựa trên Python khung web, theo mô hình kiến ​​trúc mô hình-khung nhìn mẫu (MVT). [6][7] Nó được duy trì bởi Django Software Foundation (DSF), một tổ chức độc lập được thành lập dưới dạng phi lợi nhuận 501 (c) (3).

Mục tiêu chính của Django là dễ dàng tạo ra các trang web dựa trên cơ sở dữ liệu phức tạp. Khung này nhấn mạnh khả năng sử dụng lại và "khả năng cắm" của các thành phần, ít mã hơn, khớp nối thấp, phát triển nhanh và nguyên tắc không lặp lại chính mình. [8] Python được sử dụng xuyên suốt, ngay cả đối với các tệp cài đặt và mô hình dữ liệu. Django cũng cung cấp giao diện tạo, đọc, cập nhật và xóa quản trị tùy chọn được tạo động thông qua hướng nội và được định cấu hình qua các mô hình quản trị.

Một số trang web nổi tiếng sử dụng Django bao gồm Dịch vụ phát thanh công cộng, [9] Instagram, [10] Mozilla, [11] The Washington Times [12] Disqus, [13] Bitbucket, [14] và Nextdoor. [15] Nó đã được sử dụng trên Pinterest, [16] nhưng sau đó trang web đã chuyển sang một khung được xây dựng trên Flask. [17]

Lịch sử [ chỉnh sửa ]

Django được tạo ra trong mùa thu năm 2003, khi các lập trình viên web tại tờ báo Lawrence Journal-World Adrian Holovaty và Simon Willison, bắt đầu sử dụng Python để xây dựng các ứng dụng. Nó được phát hành công khai theo giấy phép BSD vào tháng 7 năm 2005. Khung này được đặt theo tên của tay guitar Django Reinhardt. [18]

Vào tháng 6 năm 2008, nó đã được thông báo rằng Tổ chức phần mềm Django mới thành lập (DSF) sẽ duy trì Django trong tương lai. [19]

Các tính năng [ chỉnh sửa ]

Các thành phần [ chỉnh sửa ]

Ảnh chụp màn hình giao diện quản trị Django một tài khoản người dùng.

Mặc dù có danh pháp riêng, chẳng hạn như đặt tên các đối tượng có thể gọi được tạo ra các phản hồi HTTP "lượt xem", [6] khung Django cốt lõi có thể được xem như một kiến ​​trúc MVC. [7] Nó bao gồm một đối tượng trình ánh xạ quan hệ (ORM) làm trung gian giữa các mô hình dữ liệu (được định nghĩa là các lớp Python) và cơ sở dữ liệu quan hệ (" M odel"), một hệ thống xử lý các yêu cầu HTTP với hệ thống tạo khuôn mẫu web (" V iew ") và bộ điều phối URL dựa trên biểu thức chính quy (" C ontler ").

Cũng bao gồm trong khung cốt lõi là:

  • một máy chủ web nhẹ và độc lập để phát triển và thử nghiệm
  • một hệ thống xác thực và tuần tự hóa biểu mẫu có thể dịch giữa các biểu mẫu và giá trị HTML phù hợp để lưu trữ trong cơ sở dữ liệu
  • một hệ thống mẫu sử dụng khái niệm thừa kế được mượn từ lập trình hướng đối tượng
  • một khung bộ đệm có thể sử dụng bất kỳ phương thức bộ đệm nào
  • hỗ trợ cho các lớp phần mềm trung gian có thể can thiệp vào các giai đoạn xử lý yêu cầu khác nhau và thực hiện các chức năng tùy chỉnh
  • một hệ thống điều phối bên trong cho phép các thành phần của một ứng dụng để giao tiếp các sự kiện với nhau thông qua các tín hiệu được xác định trước
  • một hệ thống quốc tế hóa, bao gồm các bản dịch của các thành phần của Django sang nhiều ngôn ngữ khác nhau
  • một hệ thống tuần tự hóa có thể tạo và đọc các biểu diễn XML và / hoặc JSON của Django phiên bản mô hình
  • một hệ thống để mở rộng khả năng của công cụ mẫu
  • một giao diện cho P Khung thử nghiệm đơn vị tích hợp sẵn của ython

Các ứng dụng đi kèm [ chỉnh sửa ]

Bản phân phối Django chính cũng gói một số ứng dụng trong gói "đóng góp" của nó, bao gồm:

Khả năng mở rộng [ chỉnh sửa ]

Hệ thống cấu hình của Django cho phép mã của bên thứ ba được cắm vào một dự án thông thường, miễn là nó tuân theo các quy ước ứng dụng có thể tái sử dụng [22] . Hơn 2500 gói [23] có sẵn để mở rộng hành vi ban đầu của khung, cung cấp giải pháp cho các vấn đề mà công cụ ban đầu không giải quyết: đăng ký, tìm kiếm, cung cấp và tiêu thụ API, CMS, v.v.

Tuy nhiên, khả năng mở rộng này được giảm thiểu bởi các phụ thuộc thành phần bên trong. Trong khi triết lý Django ngụ ý khớp nối lỏng lẻo, [24] các bộ lọc và thẻ mẫu giả định thực hiện một công cụ và cả hai ứng dụng đi kèm auth và admin đều yêu cầu sử dụng ORM nội bộ. Không có bộ lọc hoặc ứng dụng đi kèm nào trong số này là bắt buộc để chạy dự án Django, nhưng các ứng dụng có thể sử dụng lại có xu hướng phụ thuộc vào chúng, khuyến khích các nhà phát triển tiếp tục sử dụng ngăn xếp chính thức để hưởng lợi hoàn toàn từ hệ sinh thái ứng dụng.

Sắp xếp máy chủ [ chỉnh sửa ]

Django có thể được chạy cùng với Apache, Nginx sử dụng WSGI, Gunicorn hoặc Cherokee bằng flup (mô-đun Python). bao gồm khả năng khởi chạy máy chủ FastCGI, cho phép sử dụng đằng sau bất kỳ máy chủ web nào hỗ trợ FastCGI, chẳng hạn như Lighttpd hoặc Hiawatha. Cũng có thể sử dụng các máy chủ web tuân thủ WSGI khác. [27] Django chính thức hỗ trợ bốn phụ trợ cơ sở dữ liệu: PostgreQuery, MySQL, SQLite và Oracle. Microsoft SQL Server có thể được sử dụng với django-mssql trên các hệ điều hành Microsoft, [28] trong khi các phụ trợ bên ngoài tương tự tồn tại cho IBM Db2, [29] SQL ở mọi nơi [30] và Firebird. [31] hỗ trợ cơ sở dữ liệu NoQuery, chẳng hạn như Kho dữ liệu của MongoDB và Google App Engine. [32]

Django cũng có thể được chạy cùng với Jython trên bất kỳ máy chủ ứng dụng Java EE nào như GlassFish hoặc JBoss. Trong trường hợp này, django-jython phải được cài đặt để cung cấp trình điều khiển JDBC cho kết nối cơ sở dữ liệu, cũng có thể cung cấp chức năng để biên dịch Django thành .war phù hợp để triển khai. [33]

Ứng dụng Google Công cụ bao gồm hỗ trợ cho Django phiên bản 1.xx [34] là một trong những khung được đóng gói.

Lịch sử phiên bản [ chỉnh sửa ]

Nhóm Django thỉnh thoảng sẽ chỉ định một số bản phát hành là bản phát hành hỗ trợ dài hạn (LTS) của Drake. [35] Bản phát hành LTS sẽ được bảo mật và sửa lỗi mất dữ liệu được áp dụng trong một khoảng thời gian được bảo đảm, thường là hơn 3 năm, bất kể tốc độ phát hành sau đó.

Phiên bản Ngày [36] Ghi chú [37]
Phiên bản cũ, không còn được hỗ trợ: 0.90 [38] 16 tháng 11 năm 2005
0,91 [39] 11 tháng 1 năm 2006 "quản trị viên mới"
Phiên bản cũ, không còn được hỗ trợ: 0.95 [40] 29 tháng 7 năm 2006 "loại bỏ ma thuật"
Phiên bản cũ, không còn được hỗ trợ: 0.96 [41] 23 tháng 3 năm 2007 "newforms", công cụ kiểm tra
Phiên bản cũ, không còn được hỗ trợ: 1.0 [42] 3 tháng 9 năm 2008 API ổn định, quản trị viên tách rời, unicode
Phiên bản cũ, không còn được hỗ trợ: 1.1 [43] 29 tháng 7 năm 2009 Tổng hợp, kiểm tra dựa trên giao dịch
Phiên bản cũ, không còn được hỗ trợ: 1.2 [44] 17 tháng 5 năm 2010 Nhiều kết nối db, CSRF, xác thực mô hình
Phiên bản cũ, không còn được hỗ trợ: 1.3 [45] 23 tháng 3 năm 2011 Chế độ xem dựa trên lớp, tệp tĩnh
Phiên bản cũ, không còn được hỗ trợ: 1.4 LTS [46] 23 tháng 3 năm 2012 Các múi giờ, trong thử nghiệm trình duyệt, mẫu ứng dụng.
Phiên bản cũ, không còn được hỗ trợ: 1.5 [47] 26 tháng 2 năm 2013 Hỗ trợ Python 3, mô hình người dùng có thể định cấu hình
Phiên bản cũ, không còn được hỗ trợ: 1.6 [48] 6 tháng 11 năm 2013 Dành riêng cho Malcolm Tredinnick, quản lý giao dịch db, tổng hợp kết nối.
Phiên bản cũ, không còn được hỗ trợ: 1.7 [49] 2 tháng 9 năm 2014 Di chuyển, tải ứng dụng và cấu hình.
Phiên bản cũ, không còn được hỗ trợ: 1.8 LTS [50] 1 tháng 4 năm 2015 Hỗ trợ riêng cho nhiều công cụ mẫu. Được hỗ trợ cho đến ít nhất là tháng 4 năm 2018
Phiên bản cũ, không còn được hỗ trợ: 1.9 [51] ngày 1 tháng 12 năm 2015 Xác thực mật khẩu tự động. Kiểu dáng mới cho giao diện quản trị.
Phiên bản cũ, không còn được hỗ trợ: 1.10 [52] ngày 1 tháng 8 năm 2016 Tìm kiếm toàn văn cho PostgreQuery. Phần mềm trung gian kiểu mới.
Phiên bản cũ hơn, nhưng vẫn được hỗ trợ: 1.11 LTS [53] 4 tháng 4 năm 2017 Phiên bản cuối cùng để hỗ trợ Python 2.7. Được hỗ trợ cho đến ít nhất là tháng 4 năm 2020
Phiên bản cũ hơn, nhưng vẫn được hỗ trợ: 2.0 [54] 2 tháng 12 năm 2017 Bản phát hành Python 3 chỉ đầu tiên, Cú pháp định tuyến URL đơn giản, Quản trị viên thân thiện với thiết bị di động.
Phiên bản ổn định hiện tại: 2.1 [55] 1 tháng 8 năm 2018 Cấp phép "xem" mô hình.
Bản phát hành trong tương lai: 2.2 LTS [56] Tháng 4 năm 2019 Được hỗ trợ cho đến ít nhất là tháng 4 năm 2022
Bản phát hành trong tương lai: 3.0 [56]
Bản phát hành trong tương lai: 3.1 [56] Tháng 8 năm 2020
Bản phát hành trong tương lai: 3.2 LTS [56] Tháng 4 năm 2021 Được hỗ trợ cho đến ít nhất là tháng 4 năm 2024

]

Phiên bản cũ

Phiên bản cũ hơn, vẫn được hỗ trợ

Phiên bản mới nhất

phiên bản xem trước

Bản phát hành trong tương lai

Công cụ phát triển có hỗ trợ Django [ chỉnh sửa ]

Để phát triển dự án Django, vì không cần công cụ đặc biệt mã nguồn có thể được chỉnh sửa với bất kỳ trình soạn thảo văn bản thông thường. Tuy nhiên, các trình soạn thảo chuyên về lập trình máy tính có thể giúp tăng năng suất phát triển, ví dụ, với các tính năng như tô sáng cú pháp. Vì Django được viết bằng Python, nên các trình soạn thảo văn bản nhận thức được cú pháp Python có lợi trong vấn đề này.

Các môi trường phát triển tích hợp (IDE) bổ sung thêm chức năng, như gỡ lỗi, tái cấu trúc và kiểm tra đơn vị. Như với các trình soạn thảo đơn giản, các IDE có hỗ trợ cho Python có thể có lợi. Một số IDE chuyên về Python cũng có hỗ trợ tích hợp cho các dự án Django, do đó, việc sử dụng IDE như vậy khi phát triển dự án Django có thể giúp tăng năng suất hơn nữa. Để so sánh các IDE Python như vậy, xem bài viết chính:

Có một hội nghị nửa năm dành cho các nhà phát triển và người dùng Django, được đặt tên là "DjangoCon", được tổ chức từ tháng 9 năm 2008. DjangoCon được tổ chức hàng năm ở châu Âu, vào tháng 5 hoặc tháng 6; [57] trong khi một cuộc họp khác được tổ chức tại Hoa Kỳ vào tháng 8 hoặc tháng 9, tại nhiều thành phố khác nhau. [58] DjangoCon 2012 đã diễn ra tại Washington, DC, từ ngày 3 đến 8 tháng 9. DjangoCon 2013 được tổ chức tại Chicago tại khách sạn Hyatt Regency và Sprints sau hội nghị được tổ chức tại Digital Bootcamp, trung tâm đào tạo máy tính. [59] DjangoCon 2014 của Mỹ đã trở lại Portland, HOẶC từ ngày 30 tháng 8 đến ngày 6 tháng 9. DjangoCon US 2015 được tổ chức tại Austin, TX từ ngày 6 đến 11 tháng 9 tại Trung tâm điều hành AT & T. DjangoCon US 2016 được tổ chức tại Philadelphia, PA tại Trường Wharton thuộc Đại học Pennsylvania từ ngày 17 đến 22 tháng 7. [60]

Hội nghị mini Django được tổ chức tại Hobart, Úc, vào tháng 7 2013, tại Brisbane, Úc, vào tháng 8 năm 2014 và 2015, và tại Melbourne, Úc vào năm 2016. [61]

Cổng sang các ngôn ngữ khác [ chỉnh sửa ]

Các lập trình viên đã chuyển thiết kế mẫu của Django từ Python sang các ngôn ngữ khác, cung cấp hỗ trợ đa nền tảng tốt. Một số tùy chọn này là các cổng trực tiếp hơn; những người khác, mặc dù được truyền cảm hứng bởi Django và vẫn giữ nguyên các khái niệm của mình, hãy tự do đi chệch khỏi thiết kế của Django:

Tài liệu tham khảo [ chỉnh sửa ]

  • Roy Greenfeld, Daniel; Roy Greenfeld, Audrey (2015), Hai muỗng của Django: Thực tiễn tốt nhất cho Django 1.8 (tái bản lần thứ 3), Two Scoops Press, tr. 531, ISBN 0981467342
  • Jaiswal, Sanjeev; Kumar, Ratan (22 tháng 6 năm 2015), Học phát triển web Django (lần xuất bản thứ nhất), Packt, tr. 405, ISBN 1783984406
  • Ravindrun, Arun (31 tháng 3 năm 2015), Các mô hình thiết kế và thực tiễn tốt nhất của Django (lần xuất bản đầu tiên) 180, ISBN 1783986646
  • Osborn, Tracy (tháng 5 năm 2015), Xin chào ứng dụng web (lần thứ nhất), Tracy Osborn, tr. 142, ISBN 0986365912
  • Bendora viêm, Aidas (tháng 10 năm 2014), Phát triển web với Django Cookbook (lần xuất bản đầu tiên) 294, ISBN 178328689X
  • Baumgartner, Peter; Malet, Yann (2015), Django hiệu suất cao (lần thứ nhất), Lincoln Loop, tr. 184, ISBN 1508748128
  • Elman, Julia; Lavin, Mark (2014), Django hạng nhẹ (lần xuất bản thứ nhất), O'Reilly Media, tr. 246, ISBN 149194594X
  • Percival, Harry (2014), Phát triển dựa trên thử nghiệm với Python (lần xuất bản đầu tiên), O'Reilly Media, p . 480, ISBN 1449364829

Danh sách này được trích từ Sách Django hiện tại

Xem thêm [ chỉnh sửa ]

Tài liệu tham khảo [ chỉnh sửa ]

Liên kết ngoài [