Xây dựng dịch vụ chat web bằng Python/Django (Feat. Channels) - Phần cơ bản

Thư viện Channels là một thư viện nhắn tin thời gian thực được phát triển dựa trên triết lý của Django. Thông qua khóa học này, hãy nhanh chóng nắm vững những tinh túy của Channels.

(4.7) 18 đánh giá

323 học viên

Độ khó Trung cấp trở lên

Thời gian Không giới hạn

Python
Python
Django
Django
django-channels
django-channels
Python
Python
Django
Django
django-channels
django-channels

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

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

4.7

5.0

happysseul627

100% đã tham gia

Tự học Django channels quá khó khăn, nhưng nhờ nghe khóa học này mà tôi có thể nắm bắt được các khái niệm, thật tuyệt vời! Tôi sẽ áp dụng những kiến thức học được từ khóa học này vào dự án đang thực hiện để tạo ra kết quả thật ấn tượng! Cảm ơn thầy rất nhiều vì đã giải thích tỉ mỉ từng kiến thức liên quan đến channels trong suốt khóa học!

5.0

朴俊相

100% đã tham gia

Tôi đã tìm hiểu các video và khóa học liên quan đến Django Channels, nhưng chưa thấy khóa học nào hữu ích bằng khóa học này. Nội dung rất nhiều và tiến độ nhanh nên không thể xao nhãng một chút nào, khó có thể xem một cách thoải mái, nhưng khóa học này dạy về xác thực khi sử dụng websocket và các tính năng cần thiết để triển khai dịch vụ chat thực tế nên rất hữu ích. Mặc dù có thể là những vấn đề có thể giải quyết bằng cách tìm kiếm hoặc sử dụng ChatGPT khi tự triển khai, nhưng có rất nhiều nội dung tốt nên biết trước.

5.0

임찬

57% đã tham gia

Django cơ bản là một khóa học rất thú vị để học sau khi đã hoàn thành khóa học cơ bản. Khóa học này đã cũ hơn nên có sự khác biệt về phiên bản, nhưng cũng thú vị khi học viên phải tự sửa lỗi theo phiên bản mới nhất. Thật vui vẻ!

Bạn sẽ nhận được điều này sau khi học.

  • Xử lý WebSocket và nhắn tin phân tán sử dụng Django Channels

  • Tìm hiểu về truyền thông WebSocket

  • Dịch vụ trò chuyện trực tuyến thời gian thực

Cuộc đời ngắn ngủi. Trong phát triển dịch vụ web thời gian thực, hãy thông qua Django/Channels để
đưa doanh nghiệp đến thành công nhanh chóng và tiết kiệm thời gian của chính bạn
. 💪

Nghe bài giảng và nhận coupon PyCharm Professional! 🎫

Chúng tôi đã nhận được sự tài trợ phiếu giảm giá 6 tháng từ JetBrains để bạn có thể tiếp tục sử dụng PyCharm Professional (công cụ trả phí), IDE tối ưu nhất cho việc phát triển Django, ngay cả sau khi kết thúc khóa học. Sau khi hoàn thành khóa học, vui lòng đăng ký theo phương thức đăng ký bên dưới.

  1. Trong suốt khóa học, chúng tôi sẽ sử dụng giấy phép dùng thử 1 tháng của PyCharm Professional.
  2. 완강하지 않으셔도, 수강신청하셨다면 아래 구글폼을 통해 쿠폰 신청이 가능합니다.
    1. Link đăng ký: https://forms.gle/mvDwLQmaCz4Z2vQD9
  3. Hàng tuần chúng tôi sẽ kiểm tra danh sách đăng ký cho đến thứ Sáu và gửi mã giảm giá (coupon) đến địa chỉ email mà bạn đã đăng ký. Friday and send the coupons to the email address you provided.
  4. Hãy đăng ký mã giảm giá (coupon) đã nhận ngay lập tức. Nếu không đăng ký, bạn sẽ không thể tiếp tục nhận được sự hỗ trợ về bản quyền từ JetBrains.
  5. Mỗi người chỉ có thể đăng ký nhận coupon 1 lần cho mỗi bài giảng.
  6. Mẹo: Sau khi sử dụng mã giảm giá này, nếu bạn tiếp tục đăng ký trả phí JetBrains bằng tài khoản đó, bạn có thể đăng ký với mức giá ưu đãi.

Lưu ý) Nếu bạn là học sinh/giáo viên, bạn có thể nhận giấy phép sử dụng tất cả các công cụ của JetBrains theo từng năm thông qua Chương trình hỗ trợ sinh viên của JetBrains. Nếu đăng ký chương trình này, bạn có thể được cấp giấy phép trong vòng vài ngày.

Chủ đề bài giảng 📖

Channels là một thư viện luôn được nhắc đến như một thư viện cốt lõi của Django ngay cả ở nước ngoài. Với phiên bản 1.0 được phát hành vào năm 2017 và phiên bản 4.0 vào tháng 11 năm 2022, đây là một thư viện đã đủ độ chín muồi.

Chỉ cần biết về Channels, bạn có thể mang tính năng thời gian thực vào dịch vụ web chỉ với một lượng mã rất nhỏ. Tôi cảm thấy rất tiếc khi có nhiều người không thể thực hiện được điều này vì không biết đến sự tồn tại của Channels hoặc thiếu tài liệu về nó. Vì vậy, tôi đã dành nhiều tâm huyết tạo ra bài giảng này để giúp nhiều người có thể học về web thời gian thực một cách dễ dàng hơn.

Thư viện Channels kế thừa trọn vẹn triết lý của framework Django với năng suất cao. Nó giúp giảm thiểu sự lặp lại và giúp bạn tập trung vào những giá trị cốt lõi. Hãy cùng tìm hiểu cách hiểu đúng về thư viện Channels và học cách xây dựng dịch vụ chat WebSocket thời gian thực với năng suất cao dựa trên nền tảng Channels.

Sau khi hoàn thành khóa học, bạn sẽ hiểu sâu về Channels và có thể nhanh chóng xây dựng các dịch vụ web thời gian thực cùng với năng suất cao của Django.

📢 Vui lòng tham khảo trước khi bắt đầu khóa học.

  • Trong số các video bài giảng đã tải lên, 60% phần sau đã được áp dụng phụ đề tiếng Hàn, và phụ đề tiếng Hàn cho 40% video bài giảng phần đầu đang trong quá trình thực hiện. Các phụ đề còn lại dự kiến sẽ được hoàn thành trong tháng 12 năm 2022.
  • Thứ Sáu, ngày 23 tháng 12 năm 2022, tất cả công việc làm phụ đề đã được hoàn tất.

Đề xuất cho những người sau đây 🙋

Những người đang tìm kiếm
thử thách mới sau khi học Django cơ bản

Những ai muốn truyền thêm
sức sống cho các trang web tĩnh

Những ai muốn
tạo dịch vụ trò chuyện thời gian thực

Những người muốn học Channels
để hiểu sâu hơn về nó


Đặc điểm của bài giảng ✨

Khóa học chắt lọc những nội dung cốt lõi của Channels
từ một nhà phát triển cực kỳ đam mê Django

Từng bước từ cơ bản
Xây dựng nền tảng truyền thông Web Socket

Cung cấp slide bài giảng
dưới dạng PDF

Phụ đề tiếng Hàn cho toàn bộ bài giảng
giúp nắm bắt nội dung bài giảng một cách nhanh chóng!

Ví dụ WebSocket phong phú:
Tin nhắn Echo, Live Blog, Web Chat


Nội dung học tập 📚

1. Các thành phần chính của Channels

  • Chúng ta hãy cùng tóm tắt các khái niệm cốt lõi của Channels.

2. (Thực hành) Triển khai Echo WebSocket siêu đơn giản

  • Bằng việc triển khai Echo WebSocket với Channels, chúng ta sẽ mở ra chương đầu tiên trong việc học về dịch vụ trò chuyện bằng Channels.

3. (Thực hành) Gửi và nhận đối tượng JS qua WebSocket

  • Trong mọi quá trình giao tiếp, việc tuần tự hóa/giải tuần tự hóa (serialization/deserialization) là điều tất yếu. Chúng ta sẽ xem xét những sai lầm thường gặp trong quá trình tuần tự hóa trong JS, đồng thời tìm hiểu về phương pháp tuần tự hóa/giải tuần tự hóa JSON trong WebSocket Client và Channels.


4. Khởi chạy và kết nối máy chủ Redis

  • Chúng ta sẽ tìm hiểu cách liên kết với dự án Django bằng cách sử dụng Gói miễn phí (Free Plan) của Redis Enterprise Cloud, cách đăng ký thông tin tài khoản Redis dưới dạng biến môi trường và cách tải cũng như xử lý chúng một cách hiệu quả trong Django. Cuối cùng, chúng ta sẽ kiểm tra lệnh để khởi chạy máy chủ Redis bằng Docker.

5. Giao tiếp giữa các tiến trình sử dụng Channel Layer

  • Trong Channels, việc giao tiếp giữa các tiến trình được hỗ trợ thông qua Channel Layer. Chúng ta sẽ tìm hiểu về các loại backend mà Channel Layer hỗ trợ, đồng thời tổng hợp các API cốt lõi của Channel Layer.

6. (Thực hành) Web Socket Liveblog

  • Chúng ta sẽ tạo ra một dịch vụ live blog có khả năng phản hồi thời gian thực với các thao tác thêm/sửa/xóa bài viết trên máy chủ mà không cần tải lại trang web. Bạn sẽ cảm nhận được sức mạnh đơn giản nhưng mạnh mẽ của Django Channels.

7. Các loại dữ liệu có thể truyền đến Channel Layer

  • Trong mọi quá trình truyền thông, việc tuần tự hóa (serialization) và giải tuần tự hóa (deserialization) là điều tất yếu. Chúng ta sẽ tìm hiểu về phương pháp tuần tự hóa được sử dụng trong giao tiếp với Channel Layer, đồng thời xem xét kỹ hơn về các hạn chế của việc tuần tự hóa trong Channel Layer.

8. Kết nối lại WebSocket

  • Mạng kết nối có thể bị ngắt bất cứ lúc nào. Ngay cả với WebSocket vốn cần duy trì kết nối liên tục, việc bị ngắt kết nối vẫn có thể xảy ra. Chúng ta sẽ tìm hiểu về 2 phương pháp để xử lý việc kết nối lại WebSocket.

9. Quan hệ kế thừa của lớp Consumer

  • Trong Channels, đối tượng chính xử lý yêu cầu là Consumer. Chúng ta sẽ cùng tìm hiểu về quan hệ kế thừa của các lớp Consumer do Channels cung cấp, cũng như tổng hợp chi tiết về vai trò của từng lớp.

10. Xây dựng dịch vụ trò chuyện thực tế

  • Là phần cốt lõi của khóa học này, chúng ta sẽ sử dụng Django Channels một cách hiệu quả để xây dựng một dịch vụ trò chuyện.

11. Bảo mật

  • Là một tính năng bảo mật được hỗ trợ bởi Channels, nó cung cấp hai loại middleware để phòng chống tấn công WebSocket CSRF. Chúng ta sẽ xem xét các ví dụ về tấn công CSRF và tìm hiểu chi tiết về cách thiết lập hai loại middleware này.

 


Câu hỏi thường gặp Q&A 💬

Q. Có yêu cầu về môi trường cần chuẩn bị trước khi học hay các lưu ý khác không?

Như đã đề cập trong bài giảng này, chúng tôi không bao gồm việc thiết lập môi trường phát triển. Về việc thiết lập môi trường phát triển, <Nhập môn Python/Django bắt đầu với triết lý thiết kế Django> đã công khai phần thiết lập môi trường phát triển dưới dạng "Xem trước", vì vậy vui lòng tham khảo phần đó để thiết lập.

Để cài đặt/vận hành Redis, tốt nhất là bạn nên có một máy tính đã cài đặt Docker. Ngay cả khi bạn không thể cài đặt Docker, đừng quá lo lắng. Tôi sẽ hướng dẫn bạn cách sử dụng dịch vụ Redis được quản lý của Redis Enterprise Cloud trên redis.com với gói miễn phí (Free Plan).

Q. Sau khi nắm vững nội dung của bài giảng này, tôi có thể làm được những gì?

Bạn sẽ có thể phát triển các dịch vụ web thời gian thực với năng suất cao cùng với Django.


Giới thiệu người chia sẻ kiến thức ✒️

Tôi là Lee Jin-seok, một nhà phát triển phần mềm luôn tâm huyết với Python và Django.

  • Người say mê Python, nhà phát triển Django với 16 năm kinh nghiệm thực tế
  • Người điều hành cộng đồng hỏi đáp Django Ask Company with Django/React (trước đây là Ask Django)
  • Nhận giải thưởng Microsoft Azure MVP (Năm 2016~2021, Microsoft MVP là gì?)
  • Giảng viên khóa học Python/Django "Lập trình Web cho Khởi nghiệp mạo hiểm", chuyên ngành liên kết Quản trị Kinh doanh mạo hiểm, Đại học Quốc gia Seoul (năm 2016/2017)
  • Giảng viên khóa 3, Trại phát triển dịch vụ web (Python/Django), Fast Campus (năm 2015)
  • Giảng dạy và tư vấn cho nhiều trường đại học và doanh nghiệp: Đại học Quốc gia Seoul, KAIST, Đại học Quốc gia Pusan, Đại học Hanyang, Đại học Kookmin, Samsung Electronics, LG Electronics, LS Group, SK Planet, Encore, Chứng khoán KB, SK Telink, Hyundai Motor Group Innocean, Koscom, Naver NIT Service, Art Center Nabi, Ngân hàng Trung ương Hàn Quốc, Viện Đánh giá Công nghệ Công nghiệp Hàn Quốc, v.v.

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

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

  • Những người đã nắm vững kiến thức cơ bản về Django và đang tìm kiếm những thử thách mới.

  • Những ai muốn nhanh chóng học cách phát triển dịch vụ web thời gian thực

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

  • Cơ bản về ngôn ngữ Python (Hàm, Lớp, Decorator)

  • Cơ bản về Django (Hiểu về View, Model, Template)

  • Cơ bản về Front-end (Cú pháp cơ bản HTML, CSS, JS)

Xin chào
Đây là pyhub

3,152

Học viên

154

Đánh giá

934

Trả lời

4.8

Xếp hạng

5

Các khóa học

Nhà phát triển phần mềm luôn tâm huyết với Python và Django

  • Chủ sở hữu của Python Sarangbang, dịch vụ đào tạo và hỏi đáp về Python/Django

  • Người điều hành Cộng đồng Python Sarangbang với Django/React (trước đây là Ask Django)

  • (Cựu) Chủ nhân giải thưởng Microsoft Azure MVP (năm 2016~2022)

Hoạt động bên ngoài

  • Đào tạo offline: SK Telink, LS Group, Samsung Display, Trụ sở Thông tin hóa Đại học Quốc gia Pusan, Chuyên ngành Liên kết Quản trị Khởi nghiệp Đại học Quốc gia Seoul, Fast Campus Web Service Development Camp khóa 3, v.v.

  • Tư vấn kỹ thuật: Euclidsoft, Đại học Quốc gia Pusan, Viện Đánh giá và Quản lý Công nghệ Công nghiệp Hàn Quốc (KEIT), Viện Xúc tiến Phát thanh Truyền hình và Truyền thông Hàn Quốc (KCA), v.v.

Tôi sẽ trở thành người dẫn dắt (pacemaker) Python/Django/React của các bạn. 😉

Thêm

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

Tất cả

23 bài giảng ∙ (2giờ 24phú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ả

18 đánh giá

4.7

18 đánh giá

  • linsay0703576님의 프로필 이미지
    linsay0703576

    Đánh giá 14

    Đánh giá trung bình 4.9

    5

    57% đã tham gia

    Django cơ bản là một khóa học rất thú vị để học sau khi đã hoàn thành khóa học cơ bản. Khóa học này đã cũ hơn nên có sự khác biệt về phiên bản, nhưng cũng thú vị khi học viên phải tự sửa lỗi theo phiên bản mới nhất. Thật vui vẻ!

    • hoosiki님의 프로필 이미지
      hoosiki

      Đánh giá 4

      Đánh giá trung bình 4.0

      5

      100% đã tham gia

      Tôi đã tìm hiểu các video và khóa học liên quan đến Django Channels, nhưng chưa thấy khóa học nào hữu ích bằng khóa học này. Nội dung rất nhiều và tiến độ nhanh nên không thể xao nhãng một chút nào, khó có thể xem một cách thoải mái, nhưng khóa học này dạy về xác thực khi sử dụng websocket và các tính năng cần thiết để triển khai dịch vụ chat thực tế nên rất hữu ích. Mặc dù có thể là những vấn đề có thể giải quyết bằng cách tìm kiếm hoặc sử dụng ChatGPT khi tự triển khai, nhưng có rất nhiều nội dung tốt nên biết trước.

      • n03192295687ungi2614님의 프로필 이미지
        n03192295687ungi2614

        Đánh giá 3

        Đánh giá trung bình 5.0

        5

        30% đã tham gia

        • kdh43038382님의 프로필 이미지
          kdh43038382

          Đánh giá 5

          Đánh giá trung bình 4.0

          4

          78% đã tham gia

          • happysseul6274613님의 프로필 이미지
            happysseul6274613

            Đánh giá 2

            Đánh giá trung bình 5.0

            5

            100% đã tham gia

            Tự học Django channels quá khó khăn, nhưng nhờ nghe khóa học này mà tôi có thể nắm bắt được các khái niệm, thật tuyệt vời! Tôi sẽ áp dụng những kiến thức học được từ khóa học này vào dự án đang thực hiện để tạo ra kết quả thật ấn tượng! Cảm ơn thầy rất nhiều vì đã giải thích tỉ mỉ từng kiến thức liên quan đến channels trong suốt khóa học!

            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!

            1.162.648 ₫