강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Full-stack

Hướng dẫn hoàn hảo phát triển dịch vụ web Python/Django với React (dựa trên Django 4.2)

Củng cố nền tảng phát triển dịch vụ web Python/Django. Học Django tốn thời gian, nhưng bạn có thể tối đa hóa năng suất của mình trong quá trình phát triển lặp đi lặp lại. Biến trí tưởng tượng của bạn thành hiện thực.

(4.9) 19 đánh giá

655 học viên

  • pyhub
장고
리뉴얼
Python
Django
React
htmx
Web API

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Phát triển dịch vụ web năng suất cao dựa trên Django 4.2

  • Quản lý lược đồ cơ sở dữ liệu bằng Django

  • Những trường hợp thất bại di chuyển thường gặp

  • Hiểu sâu về Model và Field Model trong Django ORM

  • Phát triển và sử dụng các thành phần web tập trung vào Django

  • Xử lý biểu mẫu nhập liệu năng suất cao bằng Django Form

  • Hiểu sâu hơn về xác thực mặc định của Django

  • Phát triển API web năng suất cao với django-rest-framework

  • Cách sử dụng xác thực phiên trong Web API

  • Cú pháp Javascript hiện đại cho phát triển front-end web

  • Lý thuyết cần thiết về React v18

  • Tích hợp Django/React và phát triển dịch vụ

  • Tích hợp Django/Next.js và xác thực bằng cookie phiên

  • Triển khai dịch vụ Django/React trên máy ảo Linux

🔥 Khóa học Python/Django Web Service Development Complete Guide with React hiện tại dựa trên Django 3.0 và khóa học này là khóa học cập nhật dựa trên Django 4.2 LTS. Thay vì chỉ đơn thuần đổi mới, chúng tôi đã đại tu và tái cấu trúc toàn bộ chương trình giảng dạy để bạn có thể hiểu được sức mạnh của Django và áp dụng vào công việc của mình. Khóa học trước đó không còn được bán nữa. Nếu bạn cần bài giảng trước đó, vui lòng gửi email đến help@pyhub.kr và chúng tôi sẽ cung cấp thông tin cho bạn.

Nếu có bất kỳ điều gì bạn thấy khó hiểu trong bài giảng, hãy thoải mái đặt câu hỏi. Nếu bạn suy nghĩ về một câu hỏi quá lâu, điều đó thực sự sẽ cản trở việc học của bạn. Những câu hỏi của bạn sẽ giúp việc học của bạn được trọn vẹn.

Tham gia bài giảng và nhận phiếu giảm giá PyCharm Professional! 🎫

IDE tốt nhất cho phát triển Django là PyCharm Professional (công cụ trả phí). Mặc dù môi trường phát triển được thiết lập trong bài giảng bao gồm PyCharm Professional và Visual Studio Code, nhưng bài giảng sẽ được tiến hành bằng PyCharm Professional. Tôi đã nhận được phiếu giảm giá 6 tháng do JetBrains, nhà phát triển PyCharm, tài trợ. Sau khi học xong khóa học này, bạn có thể nộp đơn theo phương pháp dưới đây.

  • Sau khi tham dự buổi thuyết trình, vui lòng điền vào biểu mẫu Google để đăng ký nhận phiếu giảm giá. Mỗi người chỉ được áp dụng phiếu giảm giá một lần.

  • Chúng tôi sẽ gửi phiếu giảm giá đến địa chỉ email mà bạn đã đăng ký theo nguyên tắc ai đến trước được phục vụ trước vào mỗi tối thứ sáu . Nếu bạn không nhận được vào thứ Hai tuần tới, vui lòng liên hệ với chúng tôi qua email và chúng tôi sẽ gửi lại cho bạn qua thư trả lời. Gần đây tôi rất hay bỏ lỡ email.

  • Nếu bạn là học sinh hoặc giáo viên, bạn có thể nhận được hỗ trợ cho tất cả các công cụ của JetBrains trong một năm thông qua Chương trình hỗ trợ học sinh của JetBrains, vì vậy hãy nhớ nộp đơn nhé.

  • Bạn phải đăng ký ngay bất kỳ phiếu giảm giá nào nhận được. Nếu không, bạn sẽ không còn nhận được hỗ trợ phiếu giảm giá từ JetBrains. Vui lòng chỉ áp dụng nếu bạn sẽ sử dụng phiếu giảm giá.


Django là một nền tảng web đầy đủ chức năng.

Xu hướng có thể đến rồi đi, nhưng bản chất của phát triển web thì không bao giờ thay đổi. Các công nghệ như React và Vue đã trở nên phổ biến trong việc dựng hình phía máy khách. Những công nghệ này đã làm cho giao diện người dùng của các ứng dụng web trở nên năng động và nhạy bén hơn. Sau đó, các công nghệ như Next.js để hiển thị phía máy chủ bắt đầu thu hút sự chú ý. Những công nghệ này không hoàn toàn mới; chúng là những công nghệ đã phổ biến từ 10 đến 20 năm trước và đã được diễn giải lại và phát triển theo cách hiện đại.

Trước đây, kết xuất phía máy chủ được sử dụng rộng rãi với các công nghệ như PHP và ASP. Đây là phương pháp tạo trước nội dung của trang web trên máy chủ và cung cấp cho người dùng. Các công nghệ hiện tại, chẳng hạn như Next.js, về cơ bản đều tuân theo nguyên tắc tương tự là hiển thị các trang trên máy chủ và phục vụ cho người dùng. Nhưng công nghệ hiện đại hiệu quả hơn và tập trung vào việc cải thiện trải nghiệm của người dùng.

Điều quan trọng là tập trung vào bản chất hơn là xu hướng. Django là một ví dụ điển hình cho việc tuân theo nguyên tắc này. Không ngừng phát triển và cải tiến kể từ năm 2005, Django giúp bạn xây dựng các ứng dụng web tốt hơn, nhanh hơn và ít mã hơn. Django là một framework đầy đủ cung cấp quy trình phát triển hiệu quả và các tính năng mạnh mẽ để đáp ứng các nhu cầu thiết yếu của phát triển web. Do đó, ngay cả khi xu hướng phát triển web thay đổi, giá trị của Django vẫn sẽ tiếp tục.

Tôi giới thiệu điều này cho những người này 🙋‍♀

Từ những điều cơ bản của phát triển dịch vụ web đến ứng dụng,
Dành cho những ai muốn xây dựng nền tảng vững chắc cho việc phân phối


Bắt đầu từ việc viết mã HTML đơn giản, đến phát triển các trang web, phát triển các thành phần web, phát triển API và triển khai máy chủ Linux!

Năng suất cao của Django
Bất kỳ ai muốn trải nghiệm nó


Cũng giống như tiếng Anh cần được hiểu là văn hóa Anh chứ không phải văn hóa Hàn Quốc, bạn chỉ có thể đạt được năng suất cao với Django nếu bạn hiểu và sử dụng triết lý và văn hóa của nó.

Nhiều trang web dựa trên Django
Bất kỳ ai tò mò về tích hợp front-end


Chúng tôi sẽ chỉ cho bạn cách tích hợp nhiều giao diện web khác nhau để bắt kịp xu hướng Django mới nhất.

Các tính năng của khóa học này 🤩

Một bài giảng đề cập sâu sắc và chân thành đến Django

Khóa học này được thiết kế để giúp bạn hiểu Django một cách chính xác và sử dụng nó một cách hiệu quả. Tôi muốn truyền tải sâu sắc triết lý thiết kế của Django. Sau đây là bản tóm tắt ngắn gọn về một số triết lý thiết kế chính của Django.

  • Đầu tiên, Django hướng đến sự đơn giản bằng cách sử dụng càng ít mã càng tốt. Tránh các quy tắc không cần thiết hoặc phương pháp mã cố định. Điều này giúp các nhà phát triển triển khai các tính năng cần thiết nhanh hơn và dễ dàng hơn.

  • Thứ hai, các khuôn khổ web hiện đại tập trung vào việc tăng tốc độ phát triển. Django được thiết kế để đạt được mục tiêu này, cho phép phát triển web nhanh chóng. Điều này cho phép các nhà phát triển tiết kiệm thời gian và tăng năng suất.

  • Thứ ba, tránh sự trùng lặp và theo đuổi sự chuẩn hóa. Theo nguyên tắc "Đừng lặp lại chính mình (DRY)", Django khuyến khích bạn giảm bớt các tác vụ lặp đi lặp lại và triển khai chức năng tối đa với mã tối thiểu. Điều này làm cho quá trình phát triển hiệu quả hơn và bảo trì dễ dàng hơn.

Những triết lý này đóng vai trò quan trọng trong Django giúp cho việc phát triển web trở nên hiệu quả và dễ dàng hơn. Tôi hy vọng rằng qua bài giảng này, bạn sẽ hiểu sâu sắc về các tính năng mạnh mẽ và triết lý của Django.


Bao gồm nội dung chuyên sâu về cả phần backend và frontend trong một bài giảng.

Chỉ vì công nghệ React và Next.js phổ biến không có nghĩa là bạn cần phải phát triển tất cả các trang dịch vụ của mình bằng công nghệ React và Next.js. Bạn có thể tập trung vào việc phát triển các trang có sử dụng công nghệ React và Next.js, còn trên các trang khác, bạn có thể tiết kiệm thời gian và nhanh chóng phát triển các dịch vụ web trong khi vẫn làm việc hiệu quả hơn với công nghệ Django. Vấn đề là lựa chọn và tập trung.

Tìm hiểu cách phát triển nhanh chóng các dịch vụ web tập trung vào Django và cách tích hợp nhiều công nghệ web front-end khác nhau tập trung vào Django. Điều này mang đến cho bạn phương pháp tiếp cận linh hoạt và hiệu quả để giải quyết các nhu cầu phát triển web đa dạng của bạn. Khóa học này sẽ cung cấp cho bạn kiến ​​thức và kinh nghiệm cần thiết để xây dựng nền tảng kỹ thuật vững chắc ở cả phần back-end và front-end.


Bài giảng lý thuyết dạng slide và PDF được cung cấp

Các slide được sử dụng trong tất cả các chương lý thuyết đều là những slide đã được tinh chỉnh và trau chuốt qua nhiều năm giảng dạy. Chúng tôi cũng cung cấp các tệp PDF để bạn có thể ghi chú trong khi nghe bài giảng.

Tôi cũng đã cẩn thận thêm các liên kết đến tài liệu chính thức mà bạn có thể thấy hữu ích trong tài liệu PDF. Vui lòng đọc tài liệu chính thức có liên quan bất cứ khi nào bạn có thời gian. Chúng tôi không thể trình bày mọi thứ về Django trong bài giảng này. Django có tài liệu chính thức được ghi chép rất đầy đủ. Câu trả lời có trong tài liệu chính thức. Bạn nên hình thành thói quen đọc tài liệu chính thức. Bằng cách đó, kỹ năng của bạn sẽ được cải thiện nhanh chóng.


Video bài giảng ngắn, đã chỉnh sửa, dài khoảng 10 phút

Mỗi bài học đều ngắn, kéo dài khoảng 10 phút, vì vậy bạn có thể học mà vẫn tập trung.

Bản ghi âm được thực hiện dựa trên một kịch bản viết sẵn và mọi phần không cần thiết của bài giảng đều được loại bỏ trong quá trình biên tập. Những bài giảng ngắn này sẽ giúp bạn sử dụng thời gian hiệu quả. Mặc dù phải mất khá nhiều thời gian và công sức để chuẩn bị và biên tập, nhưng khoản đầu tư này của một người sẽ giúp tiết kiệm hàng nghìn hoặc hàng chục nghìn giờ học và tăng hiệu quả học tập.


Đầu tiên, hãy giải thích mã, sau đó thực hành mã để tăng khả năng hiểu mã của bạn LÊN LÊN!!!

Trong thực hành viết mã, đầu tiên chúng ta sẽ giải thích mã một cách chi tiết và sau đó mới tiếp tục thực hành. Thay vì giải thích mã trong khi thực hành, việc lắng nghe giải thích trước rồi thực hành sẽ giúp bạn hiểu mã hơn.


Cung cấp liên kết đến mã thực hành để bạn có thể sao chép và dán.

Do bản chất của các bài giảng phát triển, việc nhập mã thực hành mất nhiều thời gian và có thể xảy ra lỗi đánh máy. Mặc dù lý tưởng nhất là bạn có thể tự học bằng cách gõ và mắc lỗi, nhưng đôi khi quá trình này có thể rất khó khăn. Vì vậy, để giúp bạn dễ dàng theo dõi các bài tập hơn, chúng tôi cung cấp liên kết đến mã bài tập trong phần ghi chú bài giảng bên dưới mỗi video bài giảng. Tính năng này cho phép bạn sao chép và dán mã, tiết kiệm thời gian và giảm lỗi đánh máy.

Ngoài ra, chúng tôi cung cấp liên kết mã cho mỗi cam kết của mỗi bài giảng. Tính năng này cho phép bạn nhanh chóng xác định và sửa bất kỳ mã nào hoạt động khác với mã được dạy trong bài giảng. Những tài nguyên này sẽ giúp bạn theo dõi bài giảng hiệu quả hơn và học tập trôi chảy hơn.

Tìm hiểu về những điều này

Mục (0) Xây dựng môi trường phát triển

"""Chúng tôi sẽ chuẩn bị để tiến hành bài giảng một cách suôn sẻ bằng cách hiểu đúng và thiết lập môi trường phát triển."""

Để bắt đầu phát triển web bằng Python/Django, điều cần thiết là phải thiết lập một môi trường phát triển mượt mà. Phần này sẽ hướng dẫn cả người dùng Windows và Mac cách cài đặt và thiết lập đúng các công cụ phát triển như Python, Django, PyCharm và Terminal. Việc thiết lập môi trường phát triển có vẻ khá đơn giản, nhưng nếu bạn bỏ sót một vài điểm chính, bạn có thể mất nhiều ngày để thiết lập nó. Cũng giống như người thợ thủ công phải tinh chỉnh và bảo dưỡng các công cụ của mình để tạo ra kết quả tốt nhất, điều quan trọng là các nhà phát triển phải thiết lập công cụ của mình tốt và giữ chúng ở tình trạng tối ưu . Phần này sẽ cung cấp cho sinh viên một môi trường giúp họ có thể tiến hành các bài giảng và bài tập thực hành một cách suôn sẻ.

Phần (1) Một cái nhìn nhanh về Django từ các tài liệu web tĩnh đến các tài liệu web động

"""Bạn sẽ học được quy trình chuyển đổi từ web tĩnh sang web động một cách trực quan và hiểu được bức tranh toàn cảnh về phát triển web."""

Đây là giai đoạn khởi động, nơi bạn có thể nhanh chóng thực hành các thành phần phát triển web cơ bản và cảm nhận chúng trước khi bắt đầu phát triển web Django toàn diện. Bằng cách trải qua quá trình bắt đầu với một trang web tĩnh và phát triển nó thành một trang web động, tôi hy vọng bạn có thể hình dung được bức tranh toàn cảnh về cách các thành phần cơ bản của web được kết nối với nhau . Mục tiêu là tìm hiểu quy trình phát triển web một cách trực quan thay vì cố gắng ghi nhớ mọi chi tiết.

  • Chúng ta sẽ bắt đầu với một tài liệu HTML được tạo từ tài liệu Word, thêm một số mã JavaScript đơn giản để làm cho nó có thể tương tác được và thực hiện quy trình phục vụ HTML thông qua máy chủ web.

  • Sau đó, bạn sẽ được trải nghiệm những khái niệm cơ bản của Django thông qua một dự án Django một tệp và nhanh chóng trải nghiệm các thành phần trang web động như tải dữ liệu bên ngoài, xuất dữ liệu dưới dạng HTML và thêm chức năng tìm kiếm.

  • Chúng tôi cũng sẽ chỉ cho bạn cách tạo phản hồi HTML dựa trên thông tin được lưu trữ trong cơ sở dữ liệu, giải quyết các mối đe dọa bảo mật như SQL Injection và cải thiện kiểu dáng của các trang web của bạn bằng Bootstrap 5 và Tailwind CSS.

  • Cuối cùng, chúng tôi sẽ so sánh sự khác biệt giữa kết xuất phía máy chủ và kết xuất phía máy khách để giúp bạn hiểu sơ lược về các tính năng cũng như ưu và nhược điểm của từng loại.

Phần (2) Đánh giá các tính năng cốt lõi của Django

"""Bằng cách hiểu một cách có hệ thống các ứng dụng cơ bản và chức năng cốt lõi của Django, chúng ta sẽ hiểu được giá trị thực sự của Django và tìm kiếm các phương pháp phát triển hiệu quả."""

Chúng tôi xem xét các tính năng cốt lõi và ứng dụng cơ bản giúp tối đa hóa năng suất của Django. Mục tiêu là giúp bạn hiểu được giá trị thực sự của Django bằng cách hiểu một cách có hệ thống các công cụ chính do Django cung cấp, thay vì chỉ sao chép và sử dụng mã mô hình và mã chế độ xem .

Thay vì coi Django là một công cụ đơn giản để tạo danh sách/tạo/chỉnh sửa các trang, chúng tôi đề xuất các cách tiết kiệm thời gian và công sức trong quá trình phát triển bằng cách hiểu các tính năng và triết lý của Django. Đầu tiên, chúng ta hãy xem xét 15 ứng dụng cơ bản của Django, vai trò của từng ứng dụng trong một dự án thực tế và chúng có thể hữu ích trong những tình huống nào.

Tiếp theo, chúng ta sẽ đi sâu hơn vào 14 tính năng cốt lõi của Django bằng mã ví dụ. Khóa học này được thiết kế không chỉ đơn thuần liệt kê các tính năng mà còn cung cấp cho bạn bức tranh toàn cảnh về cách Django có thể được sử dụng trong phát triển web.

Phần này sẽ giúp bạn hiểu được cấu trúc và chức năng của Django, đồng thời hiểu sâu hơn về các khả năng và giá trị khác nhau mà Django có.

Phần (3) Tạo dịch vụ Django Core Feature Sampler với Melon Data

"""Tìm hiểu các chức năng cốt lõi của Django một cách trực quan thông qua dịch vụ truy vấn đơn giản sử dụng dữ liệu Melon và xây dựng sự tự tin trong phát triển web Django."""

Đây là bước "khởi động" thứ hai, nơi bạn sẽ thực hành các tính năng cốt lõi của phát triển web Django. Trải nghiệm các chức năng thực tế của Django bằng cách tạo dịch vụ tìm kiếm dữ liệu đơn giản sử dụng dữ liệu âm nhạc Melon TOP100. Thông qua khóa học này, bạn sẽ hiểu được cách các tính năng của Django được triển khai trong các ứng dụng web.

Trong hướng dẫn này, chúng tôi sẽ giới thiệu cách sử dụng các lệnh tùy chỉnh để tải dữ liệu vào cơ sở dữ liệu và truy vấn dữ liệu đó thông qua một mô hình. Chúng ta cũng sẽ thực hành cách quản lý dữ liệu bằng cách sử dụng các chức năng quản trị của Django.

Mục tiêu là xây dựng sự tự tin cần thiết để bắt đầu phát triển web với Django bằng cách vượt qua nỗi sợ mơ hồ ban đầu thông qua hai bài khởi động . Phần này sẽ cung cấp cho bạn nền tảng vững chắc để bắt đầu hành trình học Django lâu dài.

Mục (4) Xử lý yêu cầu thông qua chức năng View

"""Hiểu được sự khác biệt và lợi thế của chế độ xem dựa trên hàm và dựa trên lớp, đồng thời có được khả năng tạo phản hồi hiệu quả bằng cách chọn phương pháp xem phù hợp để xử lý yêu cầu."""

Tìm hiểu cách xử lý và phản hồi nhiều yêu cầu khác nhau bằng chức năng View của Django. Chế độ xem là thành phần cốt lõi xử lý luồng yêu cầu/phản hồi trên web của ứng dụng Django, cho phép bạn tạo phản hồi ở nhiều định dạng khác nhau, bao gồm HTML, hình ảnh, CSV và Excel.

Tìm hiểu sự khác biệt giữa chế độ xem dựa trên chức năng và chế độ xem dựa trên lớp, ưu điểm tương ứng của chúng và xem xét thời điểm có thể sử dụng chúng một cách hợp lý. Chế độ xem dựa trên lớp cho phép bạn xử lý các yêu cầu bằng mã gần với cấu hình hơn, đặc biệt là khi bạn cần các mẫu chế độ xem lặp lại. Tuy nhiên, chế độ xem theo lớp không phù hợp với mọi tình huống. Điều quan trọng là phải sử dụng kết hợp tốt giữa chế độ xem dựa trên hàm và chế độ xem dựa trên lớp.

Phần này cũng đề cập sâu hơn đến API của chế độ xem dựa trên lớp, do đó bạn sẽ học cách hiểu cấu trúc của từng lớp và sử dụng nó . Khó có thể áp dụng quan điểm dựa trên lớp nếu không hiểu rõ cấu trúc của chúng . Điều quan trọng là phải hiểu rõ điều này.

Mục (5) Truy vấn cơ sở dữ liệu thông qua mô hình

"""Hiểu cách các cơ sở dữ liệu và mô hình Django khác nhau được liên kết với nhau và nắm bắt các nguyên tắc hoạt động thực tế của mã mô hình Django thông qua các hoạt động ở cấp độ SQL"""

Tìm hiểu cách xử lý các cơ sở dữ liệu khác nhau thông qua mô hình Django. Các mô hình Django có thể kết nối với các cơ sở dữ liệu như SQLite, PostgreSQL, MySQL/MariaDB, Oracle và SQL Server chỉ bằng một đoạn mã Python . Chúng tôi sẽ hướng dẫn cách thiết lập kết nối giữa từng cơ sở dữ liệu và dự án Django bằng mã để giúp bạn hiểu về tích hợp cơ sở dữ liệu. Bạn cũng sẽ có được kinh nghiệm thực tế trong việc cấu hình cơ sở dữ liệu trong môi trường thực tế bằng cách tạo cơ sở dữ liệu PostgreSQL và MySQL bằng Docker và liên kết chúng với dự án Django.

Chúng tôi cũng sẽ giải thích mục đích của các trường mô hình khác nhau mà Django cung cấp theo mặc định, cùng với mã ví dụ , để giúp bạn hiểu cách từng trường thực sự được lưu trữ và sử dụng trong cơ sở dữ liệu.

Cuối cùng, chúng ta sẽ sử dụng thư viện django-extensions để xác minh quá trình tạo đối tượng queryset và truy vấn cơ sở dữ liệu thông qua trình quản lý mô hình ở cấp SQL . Điều này sẽ giúp bạn hiểu rõ hơn về cách thức hoạt động thực sự của mã mô hình Django.

Phần (6) Quản lý lược đồ cơ sở dữ liệu thông qua di chuyển

"""Tìm hiểu các khái niệm cơ bản và cách sử dụng các lệnh di chuyển của Django và xây dựng nền tảng để thực hiện các lược đồ cơ sở dữ liệu một cách hiệu quả và đáng tin cậy"""

Di chuyển là một công cụ quan trọng trong Django giúp bạn quản lý cấu trúc cơ sở dữ liệu bằng mã Python và dễ dàng phản ánh những thay đổi trong mô hình Django vào cơ sở dữ liệu của bạn . Nếu không có khả năng di chuyển, bạn sẽ phải quản lý lược đồ cơ sở dữ liệu theo cách thủ công, rất cồng kềnh, dễ xảy ra lỗi và ngày càng khó bảo trì khi dự án của bạn trở nên phức tạp hơn. Vì phương pháp quản lý trực tiếp lược đồ yêu cầu mỗi sửa đổi phải được phản ánh thủ công nên có nguy cơ cao xảy ra lỗi hoặc không nhất quán ở nhiều phần khác nhau bất cứ khi nào mô hình thay đổi.

Trong nhiều trường hợp, các lệnh chỉ được thực hiện một cách máy móc mà không hiểu quy trình di chuyển, khiến việc phản ứng trở nên khó khăn khi di chuyển không thành công và thường dẫn đến nhầm lẫn. Một số người có quan niệm sai lầm rằng di chuyển chỉ có thể giải quyết được những tình huống đơn giản và không thể áp dụng trong những tình huống phức tạp do những trải nghiệm thất bại này. Phần này đề cập đến các chủ đề sau để giúp bạn hiểu rõ hơn về di cư:

  • Tìm hiểu các khái niệm cơ bản và các lệnh liên quan để thực hiện di chuyển dữ liệu bằng mã Python .

  • Chúng ta sẽ thực hành di chuyển bằng cách trải nghiệm quá trình di chuyển dữ liệu thực tế sang cơ sở dữ liệu sử dụng dữ liệu CSV mã bưu chính làm ví dụ.

  • Chúng tôi sẽ trình bày cách di chuyển hiệu quả lượng dữ liệu lớn , cho phép di chuyển ổn định ngay cả trong môi trường dữ liệu quy mô lớn.

  • Chúng tôi phân tích ba trường hợp lỗi di chuyển thường gặp và đưa ra các mẹo thực tế để ngăn ngừa lỗi và giải quyết hiệu quả các vấn đề khi chúng xảy ra.

Mục (7) Các trường mô hình tùy chỉnh và ràng buộc cơ sở dữ liệu

"""Tìm hiểu cách sử dụng mô hình Django để phản ánh nhu cầu kinh doanh thực tế và tìm hiểu những kiến ​​thức cơ bản về quản lý dữ liệu và tối ưu hóa hiệu suất thông qua nhiều ràng buộc cơ sở dữ liệu khác nhau."""

Tìm hiểu các kỹ thuật để triển khai các yêu cầu khác nhau có thể phát sinh trong thực tế vào mô hình Django. Ngoài các trường mô hình cơ bản, bạn có thể trải nghiệm tính linh hoạt và khả năng mở rộng của các mô hình Django bằng cách xử lý các trường mô hình tùy chỉnh và các ràng buộc cơ sở dữ liệu phù hợp với nhu cầu kinh doanh cụ thể của bạn.

Nội dung chính của phần này như sau:

  • Các trường mô hình cơ bản : Tìm hiểu các trường mô hình cơ bản do Django cung cấp và sắp xếp các đặc điểm và công dụng của từng trường.


  • Cách phát triển các trường mô hình tùy chỉnh : Tìm hiểu cách phát triển các trường mô hình tùy chỉnh để lưu trữ các kiểu dữ liệu đặc biệt không thể biểu thị bằng các trường mặc định. Bạn sẽ học những kiến ​​thức cơ bản về xử lý các trường tùy chỉnh thông qua các ví dụ triển khai trường IP lưu trữ số và trường đúng/sai lưu trữ chuỗi Y/N.


  • Nhiều tùy chọn Meta : Tìm hiểu cách thiết lập ràng buộc cơ sở dữ liệu và thuộc tính mô hình thông qua các tùy chọn Meta như chỉ mục, ràng buộc duy nhất, mô hình proxy, v.v. Điều này sẽ giúp bạn hiểu cách đảm bảo tính toàn vẹn của dữ liệu và tối ưu hóa hiệu suất truy vấn.

Phần (8) Xử lý biểu mẫu đầu vào hiệu suất cao bằng Django Form

"""Bạn sẽ học cách hiểu sâu sắc chức năng Form của Django và cách khắc phục những hạn chế để tăng tính linh hoạt. Bạn sẽ được trang bị khả năng tích hợp quy trình tạo và xác thực biểu mẫu nhập HTML."""

Xử lý biểu mẫu là một nhiệm vụ đòi hỏi nhiều nỗ lực phát triển ngay cả trong các khuôn khổ front-end như React, nhưng Django Form có thể xử lý mọi thứ, từ tạo biểu mẫu nhập HTML đến xác thực, giúp tăng đáng kể năng suất phát triển. Ngoài ra, việc xác thực ở phía sau cũng rất cần thiết , vì vậy hãy tìm hiểu cách xác thực kỹ lưỡng thông tin đầu vào của người dùng trên máy chủ. Nhiều tính năng bảo mật cần thiết cho quá trình xử lý biểu mẫu là một điểm cộng.

Đúng là Django Forms rất mạnh mẽ, nhưng có một nhận thức rằng chúng hơi thiếu linh hoạt . Tuy nhiên, chúng tôi sẽ đề cập đến các cách khắc phục những hạn chế đó và sử dụng chúng linh hoạt hơn , giúp bạn tăng khả năng sử dụng Django Forms. Tùy thuộc vào nhu cầu của mình, bạn có thể tự tạo biểu mẫu nhập HTML mà không cần dựa vào Django Form. Ngay cả trong các framework front-end như React, bạn có thể giảm đáng kể khối lượng công việc xử lý biểu mẫu bằng cách sử dụng Django Form.

Các chủ đề chính được đề cập trong phần này là:

  • Đối tượng yêu cầu và đối tượng phản hồi : Hiểu quy trình xử lý các yêu cầu nhận được thông qua biểu mẫu HTML và phản hồi chúng.

  • Bảo vệ CSRF : Chúng ta sẽ xem xét khả năng bảo vệ chống tấn công CSRF (Cross-Site Request Forgery) được bật theo mặc định trong Django. Đừng tắt các tính năng bảo mật tốt đã được cung cấp.

  • Xác thực biểu mẫu : Tìm hiểu cách sử dụng Biểu mẫu để xác thực dữ liệu đầu vào một cách hiệu quả, phản hồi bằng thông báo lỗi và chỉ xử lý các giá trị hợp lệ vượt qua xác thực.


  • Django Form và ModelForm : Sử dụng Django Form, bạn có thể cấu hình biểu mẫu theo ý thích của mình. Trong nhiều trường hợp, biểu mẫu nhập liệu được cấu hình theo cấu hình mô hình. Lúc này, nếu bạn sử dụng ModelForm, bạn có thể cấu hình biểu mẫu theo cấu hình mô hình mà không cần phải xác định từng trường biểu mẫu. Hiểu được sự khác biệt giữa Form và ModelForm và xem cách sử dụng từng loại trong thực tế.

  • Khám phá các trường biểu mẫu và phát triển các trường biểu mẫu/tiện ích tùy chỉnh : Tìm hiểu nhiều trường biểu mẫu khác nhau và phát triển các trường biểu mẫu và tiện ích tùy chỉnh khi cần để triển khai các biểu mẫu nhập liệu tùy chỉnh, tăng khả năng tái sử dụng của các trường biểu mẫu/tiện ích dựa trên Python.

  • Cấu hình Bố cục Biểu mẫu bằng Mã Python : Bạn không cần phải chạm trực tiếp vào HTML để cấu hình nhiều bố cục biểu mẫu khác nhau. Chúng ta sẽ xem cách xây dựng nhiều bố cục khác nhau chỉ bằng mã Python.

  • Xử lý nhiều yêu cầu biểu mẫu cùng lúc : Cấu hình của một trường nhập liệu duy nhất nhận được từ người dùng có thể thay đổi theo thời gian và có những lúc bạn cần nhận dữ liệu nhập từ nhiều phần tử biểu mẫu cùng lúc. Tìm hiểu cách xử lý nhiều giá trị Form cùng lúc và xem cách xử lý hiệu quả các yêu cầu đầu vào phức tạp.

Phần (9) Triển khai xác thực cơ bản Django chi tiết

"""Bạn có thể hiểu sâu sắc và áp dụng cấu trúc cơ bản cũng như phương pháp triển khai của hệ thống xác thực Django."""

Chúng ta sẽ tìm hiểu từng bước triển khai hệ thống xác thực cơ bản của Django , đồng thời triển khai sâu chức năng xác thực, một yếu tố thiết yếu của dịch vụ web. Xác thực là chức năng thiết yếu cho bảo mật và quản lý người dùng. Điều quan trọng là phải hiểu và thực hiện đúng điều này.

Đầu tiên, để hiểu phương thức xác thực của dịch vụ web, chúng ta sẽ tìm hiểu các nguyên tắc về cookie và phiên, đồng thời thiết kế luồng xác thực trong Django dựa trên nguyên tắc này. Sau đó, chúng ta sẽ triển khai các tính năng xác thực cơ bản của Django từ đầu, trải nghiệm trực tiếp chức năng và cách thức hoạt động của từng tính năng. Thông qua quy trình này, bạn sẽ có khả năng tích hợp dễ dàng xác thực Django vào nhiều dịch vụ hiện có .

Nội dung chính của phần này như sau:

  • Hiểu về Cookie và Phiên : Hiểu các khái niệm và vai trò cơ bản của cookie và phiên để đặt nền tảng cho cách xác thực được thực hiện trong các dịch vụ web.

  • Triển khai các tính năng xác thực Django : Triển khai các tính năng xác thực cốt lõi ngay từ đầu, chẳng hạn như đăng nhập, đăng ký, đăng xuất, yêu cầu đặt lại mật khẩu và xác nhận. Điều này sẽ giúp bạn hiểu sâu hơn về hệ thống xác thực của Django.

  • Chính sách cấp quyền cơ bản của Django : Tìm hiểu về chính sách cấp quyền do Django cung cấp và các tính năng bảo mật bổ sung như quản lý quyền của người dùng ngoài xác thực.

Mục (10) Các công nghệ front-end web và các thành phần web do Django điều khiển

"""Tìm hiểu cách sử dụng hiệu quả các công nghệ front-end tập trung vào Django và có được khả năng triển khai các ứng dụng web hiệu quả và dễ bảo trì hơn thông qua phát triển dựa trên thành phần."""

Tìm hiểu cách phát triển các thành phần dựa trên mẫu Django hiệu quả và có thể tái sử dụng. Các kỹ thuật phát triển front-end dựa trên mẫu Django cho phép bạn tạo các trang web tương tác mà không cần dựa vào JavaScript , tối đa hóa khả năng bảo trì và tái sử dụng.

Các chủ đề chính được đề cập trong phần này là:

  • Phát triển giao diện web HTML5 mà không cần JS : Tìm hiểu cách xây dựng các trang web tương tác bằng HTML5 mà không cần JavaScript.

  • Phát triển các thành phần bằng cách sử dụng mẫu Django : Tìm hiểu cách phát triển các thành phần có thể tái sử dụng dựa trên mẫu Django và tìm hiểu các cách tăng tính nhất quán và khả năng bảo trì trong dự án của bạn.

  • Phát triển các thành phần bằng thư viện django-components : Hãy triển khai các thành phần hỗ trợ khả năng mô-đun hóa và tái sử dụng tốt hơn bằng thư viện django-components.


Phần (11) (Dự án Photolog) Phát triển các dịch vụ web tập trung vào Django

"""Bạn sẽ có được kinh nghiệm xây dựng một dịch vụ web thực tế bằng cách kết hợp nhiều thư viện khác nhau của Django, triển khai nhiều chức năng có thể áp dụng trong thực tế và có được các kỹ năng phát triển web đầy đủ tập trung vào Django."""

Chúng tôi sẽ phát triển một dịch vụ web nhật ký ảnh tập trung vào Django và sử dụng các tính năng mạnh mẽ mà Django cung cấp như một khuôn khổ web đầy đủ thay vì một API đơn giản . Bắt đầu từ việc tạo dự án và thiết lập ban đầu, chúng tôi sẽ dần hoàn thiện dịch vụ thực tế từ đầu đồng thời phát huy sự tương tác giữa Django và nhiều thư viện khác.

Các chủ đề chính được đề cập trong phần này là:

  • Sự kết hợp tuyệt vời nhất với Django và django-crispy-forms, htmx

  • Triển khai tải nhiều hình ảnh lên : Hãy triển khai môi trường tải hình ảnh thân thiện với người dùng bằng cách thêm khả năng tải nhiều hình ảnh cùng một lúc.


  • Tối ưu hóa hình ảnh bằng thư viện Pillow : Trong Python, bạn có thể sử dụng thư viện Pillow để thực hiện nhiều tác vụ xử lý hình ảnh khác nhau một cách nhẹ nhàng. Nó cũng dễ cài đặt. Chúng tôi sẽ giới thiệu phương pháp tối ưu hóa sử dụng thư viện Pillow để thay đổi kích thước hình ảnh và chuyển đổi chúng sang định dạng JPEG, giúp giảm kích thước tệp hình ảnh tới 98%.

  • Hỗ trợ thẻ với thư viện django-taggit : Thêm chức năng thẻ để phân loại và tìm kiếm nội dung hiệu quả.

  • Phát triển nhiều thành phần khác nhau : Phát triển các thành phần như modal-form, image-overlay và carousel để cung cấp trải nghiệm tương tác cho người dùng.

  • Thực hiện bình luận bằng cách chủ động sử dụng HTMX và hộp thoại : Phát triển chức năng bình luận hiệu quả và cải thiện giao diện người dùng bằng cách chủ động sử dụng HTMX và hộp thoại.

  • Triển khai chức năng theo dõi người dùng : Bằng cách triển khai chức năng theo dõi người dùng, chúng tôi hoàn thiện dịch vụ nhật ký ảnh với các chức năng xã hội cơ bản.

Phần (12) Triển khai dịch vụ Django trên máy ảo Linux

"""Bạn sẽ học các kỹ thuật triển khai dịch vụ Django một cách an toàn vào môi trường Linux và có được khả năng xây dựng và quản lý môi trường vận hành dịch vụ thực tế trên cơ sở hạ tầng AWS Lightsail."""

hầu hết các dịch vụ web đều được vận hành trong môi trường Linux nên kỹ năng triển khai và quản lý máy chủ dựa trên Linux là những khả năng cần thiết đối với các nhà phát triển web. Trong phần này, bạn sẽ tìm hiểu cách thiết lập và cấu hình kiến ​​trúc để triển khai các dịch vụ Django một cách đáng tin cậy trong môi trường sản xuất thực tế.

Mặc dù khóa học này tập trung vào AWS Lightsail, nhưng các phương pháp thiết lập và triển khai mà bạn học có thể được áp dụng cho các môi trường máy chủ Linux khác theo cách gần như tương tự .

Các chủ đề chính được đề cập trong phần này là:

  • Thiết lập mạng cục bộ : Bao gồm cách kết nối với máy chủ phát triển của bạn từ các thiết bị như điện thoại di động trong giai đoạn phát triển mà không cần triển khai lên máy chủ bên ngoài. Điều này sẽ giúp bạn học cách thử nghiệm trong môi trường mạng cục bộ và dễ dàng kiểm tra trên nhiều thiết bị khác nhau trong quá trình phát triển.

  • Kiến trúc dịch vụ : Giới thiệu kiến ​​trúc cơ bản của việc triển khai dịch vụ web và hiểu về cấu hình máy chủ và phân chia vai trò.

  • Triển khai dịch vụ Django trên máy ảo Ubuntu Linux

    • Tìm hiểu cách cài đặt phiên bản Python mới nhất, 3.12 và thiết lập môi trường triển khai của bạn.

    • Proxy ngược và phục vụ các tệp tĩnh với nginx: Tìm hiểu cách phân phối lưu lượng truy cập web hiệu quả dựa trên các yêu cầu web với nginx.

    • Nhật ký lỗi và gửi email cho quản trị viên: Tìm hiểu cách thiết lập email cho quản trị viên để quản trị viên có thể nhanh chóng nhận ra lỗi dịch vụ.

    • Dịch vụ ghi nhật ký lỗi Sentry: Tích hợp với dịch vụ theo dõi lỗi Sentry để cải thiện khả năng quản lý dịch vụ thông qua giám sát thời gian thực.


  • Triển khai bằng máy ảo và cơ sở dữ liệu Amazon Lightsail: Xây dựng môi trường triển khai ổn định dựa trên AWS.


Phần (13) Tạo một API web hiệu quả bằng cách sử dụng django-rest-framework

"""Bạn sẽ có được sự hiểu biết toàn diện về các tính năng của django-rest-framework và có được các kỹ năng thực tế để xây dựng các API web hiệu quả và năng suất."""

Một thư viện được sử dụng rộng rãi để phát triển API web trong Django là django-rest-framework (sau đây gọi là DRF). Tìm hiểu cách phát triển API web có năng suất cao bằng DRF. Cũng giống như Django cung cấp nhiều chức năng được tối ưu hóa cho việc phát triển trang web , DRF hỗ trợ một cách có hệ thống các chức năng cần thiết cho việc phát triển API web, giảm sự lặp lại và giúp xây dựng API web hiệu quả.

Các chủ đề chính được đề cập trong phần này là:

  1. APIView : Hiểu cấu trúc và hoạt động cơ bản của APIView, đây là cốt lõi của quá trình xử lý yêu cầu API.

  2. Mixin : Một tính năng sử dụng cú pháp kế thừa lớp, cho phép bạn kết hợp nhiều DRF APIView để hỗ trợ nhiều tình huống khác nhau với mã gần với cấu hình . Tìm hiểu cách tăng khả năng tái sử dụng mã và dễ dàng thêm chức năng phổ biến.

  3. ModelViewSet : Bộ quà tặng toàn diện các triển khai API CRUD (tạo/truy vấn/sửa đổi/xóa), cho phép bạn kết hợp và sử dụng thoải mái các hàm CRUD cần thiết. Chúng ta sẽ xem xét quá trình kế thừa và tìm hiểu cách sử dụng nó để dễ dàng triển khai nhiều chức năng khác nhau bằng cách kết hợp các phương pháp kế thừa khác nhau.

  4. Renderer : Máy chủ API yêu cầu phản hồi ở định dạng JSON cũng như hình ảnh, tệp Excel, PDF, v.v. Tương tự như các tài liệu có cùng nội dung nhưng có thể yêu cầu tài liệu ở định dạng Excel, Word, Word hoặc Hangul tùy theo tình huống. Tìm hiểu cách hiển thị phản hồi API theo nhiều định dạng khác nhau với khả năng tái sử dụng cao bằng DRF Renderer.

  5. Serializer : Vai trò của Django Form được đảm nhiệm bởi serializer. Tìm hiểu cách xử lý xác thực và chuyển đổi dữ liệu hiệu quả.

  6. Xác thực và Ủy quyền : Tìm hiểu về xác thực và ủy quyền, giúp dạy về bảo mật API và triển khai kiểm soát truy cập của người dùng.

  7. Kiểm thử pytest : Tìm hiểu cách kiểm thử API bằng pytest và xác minh rằng API hoạt động như mong đợi.

  8. Phân trang : Dữ liệu trong bảng cơ sở dữ liệu không được truy xuất cùng một lúc. Bạn có thể tìm kiếm theo trang bằng cách chỉ định kích thước trang. Hãy cùng xem xét ba phương pháp phân trang được DRF hỗ trợ.


Mục (14) Xác thực phiên cho API Web

"""Bạn sẽ hiểu các phương pháp xác thực phiên phù hợp với API web và có được các kỹ năng thực tế để triển khai xác thực hiệu quả."""

Nhiều người cho rằng xác thực JWT nên được sử dụng cho API web, nhưng xác thực JWT có nhiều nhược điểm hơn là ưu điểm, do đó xác thực phiên là lựa chọn ổn định và phù hợp hơn trong môi trường hoạt động thực tế . Tìm hiểu cách bảo mật và hiệu quả hơn các yêu cầu API của bạn bằng xác thực phiên mà Django cung cấp theo mặc định.

Nếu bạn sử dụng xác thực phiên, bạn không cần phải triển khai các chức năng như đăng nhập khi phát triển React SPA (Ứng dụng trang đơn). Tận dụng các tính năng đã được triển khai trong Django và tập trung vào việc triển khai doanh nghiệp của bạn .

Các chủ đề chính được đề cập trong phần này là:

  • Xác thực phiên so với xác thực JWT : So sánh ưu và nhược điểm của xác thực phiên và xác thực JWT để hiểu phương pháp xác thực nào phù hợp với API web của bạn.


  • Thiết kế để tận dụng xác thực phiên trong các yêu cầu API web : Tìm hiểu các phương pháp thiết kế để xử lý an toàn các yêu cầu API web từ React SPA (Ứng dụng trang đơn) bằng cách tận dụng xác thực phiên.

  • Tích hợp và xác thực Django/Next.js bằng cookie phiên : Chúng ta sẽ xem cách tích hợp Django và Next.js để sử dụng xác thực phiên mà không cần JWT.

Phần (15) Tìm hiểu React và tạo các thành phần mẫu Django với React (Dựa trên React v18)

"""Tìm hiểu các khái niệm cốt lõi của React và tìm hiểu cách sử dụng chúng để triển khai các thành phần mẫu Django có thể được sử dụng trong các mẫu Django."""

React chỉ đơn giản là một thư viện UI và việc sử dụng React không nhất thiết có nghĩa là giao diện người dùng của bạn phải được xây dựng dưới dạng Ứng dụng trang đơn.

React là công nghệ front-end mạnh mẽ nhưng chi phí phát triển lại cao . Và trong số các chức năng của dịch vụ , có lẽ có hơn 80% không nhất thiết phải yêu cầu React . Thay vì sử dụng React cho toàn bộ quá trình phát triển tính năng, nếu bạn chỉ áp dụng công nghệ React cho các tính năng cốt lõi (thậm chí các tính năng cốt lõi có thể không cần đến React) và tích cực sử dụng các công nghệ front-end tập trung vào Django để dành thời gian hoàn thiện các tính năng cốt lõi đó, bạn có thể dành đủ thời gian và triển khai hầu hết các tính năng . Chi phí lớn nhất là thời gian.

Theo góc nhìn này, chúng tôi thiết kế phần này để giúp các nhà phát triển phần mềm hiểu được công nghệ React và chỉ sử dụng nó một cách phù hợp cho các chức năng yêu cầu.

  • Tạo một dự án React bằng cách sử dụng CRA và Parcel bundler

  • Hàm thuần túy và JSX : Tìm hiểu khái niệm về hàm thuần túy, cốt lõi của các thành phần React và cách tạo UI khai báo bằng JSX.


  • Trạng thái, Thuộc tính và Xử lý Sự kiện : Tìm hiểu cách quản lý trạng thái bằng cách sử dụng trạng thái và thuộc tính trong React và xử lý tương tác của người dùng dưới dạng sự kiện.

  • Cách viết CSS thành phần : Tìm hiểu cách thêm kiểu vào thành phần của bạn bằng Modules và Sass.

  • Xử lý các đối tượng bất biến dễ dàng bằng immer : Xử lý các đối tượng bất biến là điều cần thiết trong React. Việc xử lý các đối tượng bất biến rất phức tạp khi chỉ sử dụng các tính năng JS cơ bản. Tìm hiểu cách xử lý dễ dàng các giá trị bất biến bằng immer.


  • Mẫu gấp, bộ giảm và quản lý trạng thái toàn cục : Vì các thành phần React chiếm phần lớn trang nên việc quản lý trạng thái toàn cục trở nên cần thiết. Hãy cùng tìm hiểu về Reducer như một cách xử lý hiệu quả việc quản lý giá trị trạng thái toàn cầu.

  • Yêu cầu API web bằng Axios : Bạn có thể gửi yêu cầu HTTP qua API tìm nạp trong web cơ bản, nhưng hãy xem cách tạo yêu cầu API web bằng thư viện Axios, thư viện này có nhiều chức năng tiện lợi được cải tiến.

  • Tạo SPA bằng Router : Trong Ứng dụng một trang, bạn không thể tránh khỏi việc phải hiển thị nhiều màn hình tùy thuộc vào URL yêu cầu. Tìm hiểu cách hiển thị các thành phần React khác nhau dựa trên URL được yêu cầu bằng thư viện React Router.

  • Tạo thành phần mẫu Django bằng React : React chỉ là một thư viện UI, do đó có thể sử dụng ở bất kỳ đâu trên trang web. Tìm hiểu cách tạo các thành phần React có thể sử dụng trong các mẫu Django.

Phần (16) Tạo dịch vụ lai Django/React

"""Bằng cách tích hợp dự án Django đã phát triển trước đó và ứng dụng React, chúng tôi sẽ triển khai một ứng dụng web linh hoạt và hiệu quả, đồng thời tận dụng thế mạnh của nhau."""

Thiết kế biểu mẫu trong React , quản lý trạng thái trường và xử lý thông báo lỗi là những nhiệm vụ đòi hỏi nhiều giờ phát triển. Nếu bạn cần một biểu mẫu phức tạp, bạn có thể xử lý trong React, nhưng trong hầu hết các trường hợp, bạn có thể giảm đáng kể công sức phát triển bằng cách sử dụng hàm Form của Django.

Trong phần này , bạn sẽ học cách triển khai biểu mẫu modal trong React bằng cách chỉ định địa chỉ, sử dụng biểu mẫu Django tùy theo tình huống và tìm hiểu cách tối đa hóa sự hài hòa giữa Django và React.

Sau đây là những chủ đề chính được đề cập trong mỗi phần:

  • Ứng dụng CRA danh sách việc cần làm với API : Triển khai tính năng quản lý danh sách việc cần làm bằng cách kết hợp API của Django và ứng dụng React. Điều này sẽ giúp bạn hiểu được cấu trúc mà phần phụ trợ và phần giao diện được kết nối một cách tự nhiên.

  • Triển khai biểu mẫu ToDo theo cách kết hợp Django/React

    • Triển khai biểu mẫu modal bằng cách tích hợp biểu mẫu React và Django. Đặc biệt, bằng cách hoàn thành biểu mẫu chỉ bằng cách chỉ định địa chỉ trang biểu mẫu Django trong React, bạn có thể tối đa hóa năng suất của biểu mẫu Django trong khi tận dụng giao diện người dùng tương tác của React.

Phần (17) API bộ nhớ đệm

"""Hiểu được các chiến lược lưu trữ đệm khác nhau của Django và tìm hiểu những cách thực tế để sử dụng bộ nhớ đệm nhằm tối ưu hóa hiệu suất dịch vụ."""

Tìm hiểu cách tận dụng API bộ nhớ đệm của Django để giảm tải cho cơ sở dữ liệu và tăng tốc độ phản hồi của dịch vụ . Bộ nhớ đệm giúp giảm đáng kể thời gian phản hồi và tiết kiệm tài nguyên hệ thống bằng cách xử lý hiệu quả các yêu cầu dữ liệu.

Tuy nhiên, bộ nhớ đệm là "con dao hai lưỡi" ; cài đặt không chính xác thực sự có thể làm giảm độ mới của dữ liệu và gây ra các vấn đề không mong muốn. Đây sẽ là thời điểm để hiểu được những rủi ro tiềm ẩn của bộ nhớ đệm đồng thời tận dụng nó một cách hiệu quả.

Các chủ đề chính được đề cập trong phần này là:

  • Tận dụng API bộ nhớ đệm cấp thấp : Hiểu được hành vi cơ bản của bộ nhớ đệm bằng cách sử dụng API bộ nhớ đệm cấp thấp của Django.

  • Các nền tảng lưu trữ đệm khác nhau (bộ nhớ, memcached, redis): So sánh các nền tảng lưu trữ đệm khác nhau để tìm ra ưu và nhược điểm của chúng.

  • Phân tích logic tạo nên khóa lưu trữ đệm : Tìm hiểu cách tối ưu hóa tỷ lệ truy cập bộ nhớ đệm của bạn bằng cách phân tích logic tạo nên khóa lưu trữ đệm.

  • Xác minh bộ nhớ đệm bằng django-debug-toolbar : Tìm hiểu cách xác minh hành vi lưu trữ bộ nhớ đệm nội bộ và gỡ lỗi sự cố bằng django-debug-toolbar.

  • Cách tăng tỷ lệ truy cập bộ đệm bằng cách sắp xếp các tham số truy vấn có cùng giá trị nhưng khác thứ tự : Các tham số truy vấn có cùng giá trị nhưng khác thứ tự được lưu trữ ở các vị trí bộ đệm khác nhau. Tìm hiểu cách cải thiện tỷ lệ truy cập bộ nhớ đệm bằng cách sắp xếp các tham số truy vấn.

  • Cách xóa hàng loạt bộ nhớ đệm bằng Redis và chương trình đệm django-redis : Tìm hiểu cách xóa hàng loạt bộ nhớ đệm có lượng dữ liệu lớn hoặc đáp ứng các điều kiện cụ thể một cách hiệu quả bằng thư viện Redis và django-redis.

  • Cách xóa bộ nhớ đệm mẫu : Tìm hiểu cách xóa bộ nhớ đệm mẫu theo cách thủ công để bạn có thể phản hồi nhanh khi cần làm mới bộ nhớ đệm.

Phần (18) Triển khai dịch vụ Django/React trên máy ảo Linux

"""Tìm hiểu công nghệ để triển khai ứng dụng đầy đủ kết hợp Django và React vào môi trường Linux một cách đáng tin cậy và có được khả năng triển khai tổng thể bao gồm bảo mật và cài đặt miền cần thiết cho hoạt động dịch vụ thực tế."""

Tìm hiểu cách triển khai dịch vụ web Django và giao diện React SPA cùng nhau bằng cơ sở hạ tầng AWS Lightsail.

Các chủ đề chính được đề cập trong phần này là:

  • Phân tách các biến môi trường cho phát triển/triển khai : Tìm hiểu cách quản lý các biến môi trường phù hợp cho việc triển khai bằng cách phân tách các thiết lập cần thiết tùy theo môi trường.

  • Triển khai máy chủ dễ dàng và đơn giản với tập lệnh triển khai : Tìm hiểu cách triển khai lên máy chủ dễ dàng và đơn giản bằng cách viết tập lệnh triển khai tự động hóa các tác vụ triển khai máy chủ.

  • Cách thiết lập tệp triển khai CRA trong nginx : Tìm hiểu cách triển khai các ứng dụng React một cách đáng tin cậy bằng cách thiết lập nginx để phục vụ các tệp React được xây dựng bằng Create React APP (CRA).

  • Hỗ trợ tên miền phụ cho việc học tập : Tên miền rất cần thiết để vận hành một dịch vụ. Ngay cả khi bạn không có tên miền, chúng tôi vẫn cung cấp tên miền mà bạn có thể sử dụng cho mục đích học tập.

  • Liên kết chứng chỉ và miền HTTPS : Tăng cường bảo mật bằng cách áp dụng chứng chỉ HTTPS và liên kết chúng với miền để hoàn thiện môi trường triển khai ở cấp độ sản xuất.

Bạn có thắc mắc nào không?

H. Đây có phải là bài giảng mà sinh viên không chuyên ngành cũng có thể tham gia không?

Nếu bạn hiểu cú pháp Python như hàm/lớp/trình trang trí/trình tạo và đã viết hàng chục dòng mã Python, bạn có thể dễ dàng theo dõi bài giảng này. Tất nhiên, bạn sẽ không hiểu được ngay cả khi đã nghe và thực hành một lần. Không ai có thể hiểu được một lĩnh vực mà họ mới tiếp cận lần đầu. Đừng quá đau buồn. Điều này là tự nhiên vì bạn đang tìm hiểu về một lĩnh vực xa lạ. Những nỗ lực được thực hiện theo đúng hướng sẽ không bao giờ thất bại. Nếu bạn có bất kỳ thắc mắc nào về Python/Django trong khi học, vui lòng thoải mái nêu ra bất cứ lúc nào. Tôi sẽ cùng bạn suy nghĩ về vấn đề này. Hãy cùng nhau phát triển. ;-)

H. Python không phải là ngôn ngữ dành cho người mới bắt đầu sao?

Python dễ đọc hơn các ngôn ngữ khác và có thể thực hiện nhiều tác vụ một cách hiệu quả với các mã ngắn. Mặc dù Python chưa phổ biến ở Hàn Quốc trong thời gian dài, nhưng đây lại là ngôn ngữ chính ở nước ngoài trong hơn một thập kỷ và được sử dụng rộng rãi trong nhiều lĩnh vực, bao gồm cả web.

Và Python không hề chậm. Giống như tiếng Anh sẽ trở thành Konglish nếu bạn không hiểu đúng và sử dụng nó, mã Python được sử dụng mà không hiểu đúng về Python sẽ trở nên kém hiệu quả. Nếu bạn hiểu và sử dụng tốt Python, bạn có thể nhanh chóng phát triển mã chạy nhanh. Chúng ta có thể nói rằng mã được phát triển bằng ngôn ngữ C chạy nhanh trong mọi trường hợp không? Nếu bạn phát triển chậm thì nó sẽ chậm. Mặc dù Python chậm về mặt hoạt động của CPU, các thư viện Python được phát triển bằng C/C++/Rust có thể giải quyết các vấn đề đòi hỏi hoạt động nhanh của CPU. Các thư viện như numpy. Vì vậy, bạn sẽ sử dụng Python để phân tích dữ liệu và học máy. :-) Trên thực tế, nhiều API học máy của Kakao được phát triển bằng Python. (Tham khảo: [YouTube - PyCon Korea] Đánh giá phát triển máy chủ ứng dụng cho hệ thống đề xuất @kakao )

Hơn nữa, với việc phát hành Python 3.11, 3.12 và 3.13, Python đang trở nên nhanh hơn đáng kể.

H. Học Django có tốn kém, chậm và có nhiều hạn chế không?

Django là một nền tảng khá hoàn thiện đã tồn tại khoảng 20 năm kể từ khi được phát hành vào năm 2005. (Spring được phát hành vào năm 2003.) Django là một nền tảng đầy đủ chức năng về mặt back-end và hầu như tất cả các chức năng cần thiết cho quá trình phát triển back-end đều được phát triển và đang được phát triển trong Django.

Django chỉ cung cấp nhiều tính năng trong một gói. Có nhiều tính năng hơn không nhất thiết có nghĩa là nó chậm hơn. Mỗi chức năng được quản lý hữu cơ bởi một đơn vị quản lý duy nhất và có sự phối hợp tốt nhất. FastAPI rất mạnh mẽ, nhưng các tính năng của nó bị hạn chế và không thể triển khai tất cả các tính năng của dịch vụ web chỉ bằng FastAPI. Yêu cầu cài đặt nhiều thư viện với các thực thể quản lý khác nhau. Khi bạn cài đặt cái này cái kia, sẽ không có gì lạ khi kích thước của nó lớn hơn Django.

Triết lý thiết kế đầu tiên của Django là "liên kết lỏng lẻo". Django cung cấp nhiều tính năng đầy đủ để thuận tiện cho bạn, nhưng mỗi tính năng đều độc lập. Bạn có thể chọn và chỉ sử dụng những hàm bạn cần, đồng thời kết hợp chúng với nhiều thư viện Python khác nhau.

Toss có một tổ chức mang tên “Toss Internal” chuyên tạo ra các dịch vụ cho khoảng 1.000 thành viên trong nhóm Toss. Tổ chức này phát triển các dịch vụ bằng Django và React. ( Tin tuyển dụng liên quan cho Toss: Nhà phát triển máy chủ (Sản phẩm nội bộ) ) Tại sao nhóm nội bộ của Toss lại chọn Django và React?

Python/Django sẽ giúp bạn tiết kiệm nhiều thời gian hơn và đạt năng suất tối đa trong các nhóm có thời gian và chi phí hạn chế, để bạn có thể tập trung vào doanh nghiệp của mình.

Những điều cần lưu ý trước khi tham gia lớp học

Môi trường thực hành

  • Hệ điều hành và Phiên bản (OS)

    • Bài giảng này trình bày cách thiết lập môi trường phát triển cho Windows và Mac.

    • Bất kỳ môi trường nào có thể cài đặt Python và Node đều có thể thực hiện được.


  • Công cụ sử dụng: PyCharm Professional (có phiếu giảm giá 6 tháng), Docker

    • Chúng tôi sử dụng Docker để tạo nhanh cơ sở dữ liệu PostgreSQL và MySQL. Bài viết này không đề cập đến việc cài đặt Docker, nhưng cung cấp các lệnh và tệp docker-compose.yml cần thiết để tạo vùng chứa Docker. Trên những máy tính không thể cài đặt Docker, bạn có thể sử dụng cơ sở dữ liệu SQLite (khuyến nghị) hoặc tải xuống và cài đặt tệp cài đặt PostgreSQL/MySQL.

  • Việc triển khai được thực hiện trên máy ảo Lightsail của AWS (Amazon Web Services).

    • Để đăng ký AWS, bạn cần có thẻ tín dụng cho phép thanh toán ở nước ngoài.

    • Nếu bạn xóa tài nguyên ngay sau khi thực hành triển khai, chi phí AWS dự kiến ​​sẽ vào khoảng vài trăm won.

    • Nếu bạn gặp khó khăn khi đăng ký AWS, bạn có thể tạo máy ảo Ubuntu Linux cục bộ bằng VirtualBox hoặc Parallels và tiếp tục đào tạo, nhưng một số nội dung trong bài giảng có thể không hoạt động. Nếu có phần nào không hoạt động hoặc bị chặn, vui lòng để lại câu hỏi và chúng tôi sẽ hướng dẫn bạn.

Tài liệu học tập

  • Tài liệu bài giảng PDF được cung cấp cho mỗi video bài giảng.

  • Nếu mã thực hành dài, liên kết để sao chép mã nguồn sẽ được cung cấp trong ghi chú bài giảng bên dưới video bài giảng.

  • Liên kết cam kết cho mỗi phòng thí nghiệm được cung cấp trong ghi chú bài giảng bên dưới video bài giảng.

Ghi chú

  • Bản quyền nội dung bài giảng này thuộc về người chia sẻ kiến ​​thức. Bạn có thể chia sẻ một số kiến ​​thức mình học được trên blog của mình với mục đích học tập (vui lòng ghi rõ nguồn), nhưng không được phép chia sẻ toàn văn hoặc sử dụng cho mục đích thương mại.


Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Dành cho những ai muốn bắt đầu phát triển dịch vụ web bằng Python một cách vững chắc từ những kiến thức cơ bản.

  • Dành cho những ai muốn cảm nhận tinh túy của phát triển web Django

  • Những bạn muốn trải nghiệm tất cả từ backend/frontend/deploy trong một bài giảng

Cần biết trước khi bắt đầu?

  • Hiểu biết về cú pháp cơ bản của Python (hàm, lớp, decorator, type hinting, generator)

  • Hiểu các cú pháp cơ bản của Javascript (Hàm, Prototype, this, v.v.)

  • Khởi động container bằng Docker

Xin chào
Đây là

2,946

Học viên

139

Đánh giá

933

Trả lời

4.8

Xếp hạng

5

Các khóa học

파이썬과 장고에 진심인 소프트웨어 개발자

대외 활동

  • 오프라인 교육 : SK텔링크, LS그룹, 삼성 디스플레이, 부산대학교 정보화본부, 서울대학교 벤처경영학연합전공, 패스트캠퍼스 웹서비스 개발 캠프 3기 등

  • 기술 자문 : 유클리드소프트, 부산대학교, 한국산업기술평가관리원, 한국방송통신전파진흥원 등

여러분의 파이썬/장고/리액트 페이스메이커가 되겠습니다. 😉

Chương trình giảng dạy

Tất cả

295 bài giảng ∙ (35giờ 56phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

19 đánh giá

4.9

19 đánh giá

  • sunnnwo님의 프로필 이미지
    sunnnwo

    Đánh giá 7

    Đánh giá trung bình 4.7

    Đã chỉnh sửa

    5

    10% đã tham gia

    장고 강의는 다른거 들을거 없이 이거 하나면 됩니다. 제가 여러 강의 사서 들어봤는데요, 이게 제일 좋습니다. 강의가 많고요, 그만큼 설명을 자세히 해주십니다. 질문에 대한 답변도 잘해주셔서 너무 좋습니다. 여기서 다른 장고강의도 들을때 무슨 대학교 교수님이 그냥 ppt읽으면서 강의하는 느낌나고 그리고 질문하면 chatGPT써서 복붙하는것도 봤습니다. 이 강의는 이런거 전혀 없고, 질문에 대한 답변도 너무 좋습니다.

    • 주인국님의 프로필 이미지
      주인국

      Đánh giá 8

      Đánh giá trung bình 4.1

      Đã chỉnh sửa

      5

      100% đã tham gia

      솔직한 완강 후기입니다. 회사 입사전 봄 즈음부터 들은 것 같은데, 이제서야 완강하게 되네요. 강의 특징, 장점, 단점 상세하게 적겠습니다. - 강의 특징 ``` > 실무자의 '난 이렇게 일함' 입니다. ``` 시니어 슨배님의 코드 염탐하는 거라고 생각하셔야합니다. - 장점 배포부터 실무 까지 전체적으로 큰 그림을 그릴 수 있습니다. 고수의 코드를 보고 이떤 키워드를 내가 알아야 하는 구나 라고 느낄 수 있습니다. 어쩌면 AI 시대에 키워드는 혼자 공부 할 수도 있으니 바른 방향이라고 생각합니다. - 단점 발음이 좋지 않으심. 원리 설명이 부족함. pdf는 한페이지 보기 불편함. 강의, pdf, 강의 내 추가자료 등 내용이 파편화 되어 있어 따라가기 힘듬. 정리하자면.. 분명 너무나 좋은 내용을 다루지만 짧은 강의 시간 저렴한 가격에 모든 것을 얻을 수는 없고 '공부할 키워드 얻는다'라고 생각하면 최고의 강의입니다. 듣느라 힘들었습니다.... 다음은 2회차 들으면서 옵시디언으로 제가 필요한 부분만 추려서 강의 재구성할 계획입니다. 하지만 듣고나니, 단지 웹개발자로서가 아니라 개발자로서 한단계 성장한 느낌입니다.

      • 이진석
        Giảng viên

        강의를 완강하셨다니, 고생 많으셨고 진심으로 감사드립니다. 남겨주신 피드백은 한 글자 한 글자 빼놓지 않고 차근히 읽어보았고, 느끼는 바가 많았습니다. 진솔한 후기를 통해 저 또한 많이 배웠습니다. 말씀해주신 각 지점은 앞으로 개선의 중요한 기준점으로 삼겠습니다. 다시 한 번 감사드리며, 다음 콘텐츠에서는 더 나은 모습으로 보답드릴 수 있도록 노력하겠습니다.

    • 문석청님의 프로필 이미지
      문석청

      Đánh giá 36

      Đánh giá trung bình 5.0

      5

      11% đã tham gia

      좋은 강의 감사합니다.

      • 이진석
        Giảng viên

        본 강의의 첫 수강평이네요. 감사드리고, 해피 장고 되세요~ ;-)

    • sykim1님의 프로필 이미지
      sykim1

      Đánh giá 1

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      • munkyo.lee님의 프로필 이미지
        munkyo.lee

        Đánh giá 5

        Đánh giá trung bình 5.0

        5

        60% đã tham gia

        4.603.708 ₫

        Khóa học khác của pyhub

        Hãy khám phá các khóa học khác của giảng viên!

        Khóa học tương tự

        Khám phá các khóa học khác trong cùng lĩnh vực!