Building a Web Chat Service with Python/Django (Feat. Channels) - Basic Course

The Channels library is a real-time messaging library developed under the philosophy of Django. Quickly master the essence of Channels through this course.

(4.7) 18 reviews

323 learners

Level Intermediate

Course period Unlimited

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

Reviews from Early Learners

Reviews from Early Learners

4.7

5.0

happysseul627

100% enrolled

It was so hard to self-study Django channels, but this course was great because I was able to learn the concepts! I'm going to use what I learned from this course in my ongoing project to achieve great results! Thank you so much for thoroughly explaining all the channels-related knowledge throughout the entire course!

5.0

朴俊相

100% enrolled

I've looked for videos and lectures related to Django Channels, but I haven't found any lectures as helpful as this one. The content covers a lot and moves quickly, so you can't let your mind wander even for a moment, making it hard to watch in a relaxed state. However, it's been extremely helpful because it teaches the necessary feature implementations for WebSocket authentication and building actual chat services. While these might be issues you could resolve through direct implementation using searches or ChatGPT, there's a lot of content that's good to know in advance.

5.0

임찬

57% enrolled

It's a very interesting lecture to listen to after completing the Django basic lecture. This lecture is older, so there are differences in versions, but it's also fun to fix errors one by one for the latest version. It's fun!

What you will gain after the course

  • Distributed Messaging and WebSocket Processing Using Django Channels

  • Understanding WebSocket Communication

  • Real-time web chat service

Life is short. Through Django/Channels in real-time web service development,
lead your business to success quickly and save your time
. 💪

Take the course and get a PyCharm Professional coupon! 🎫

We have received a sponsorship of 6-month coupons from JetBrains so that you can continue to use PyCharm Professional (a paid tool), the optimal IDE for Django development, even after the course. Please apply using the method below after completing the course.

  1. During the lecture, we will proceed with a 1-month trial license for PyCharm Professional.
  2. 완강하지 않으셔도, 수강신청하셨다면 아래 구글폼을 통해 쿠폰 신청이 가능합니다.
    1. Application Link: https://forms.gle/mvDwLQmaCz4Z2vQD9
  3. We will check the applications submitted by every Friday and send the coupons to the email address you provided.
  4. Please register the received coupon immediately. If you do not register it, you will no longer be able to receive license support from JetBrains.
  5. Coupon applications are limited to once per person per course.
  6. Tip: If you continue with a paid JetBrains subscription using the same account after using this coupon, you can subscribe at a discounted price.

Note) If you are a student or teacher, you can receive a one-year license for all JetBrains tools through JetBrains' Student Support Program. If you apply for the program, you can receive your license within a few days.

Lecture Topic 📖

Channels is a library that is consistently mentioned as a core Django library, even abroad. Since the release of version 1.0 in 2017 and reaching version 4.0 in November 2022, it has become a sufficiently mature library.

If you only know Channels, you can add real-time capabilities to your web services with a very small amount of code. It was unfortunate to see many people unable to do this simply because they weren't aware of Channels or couldn't find enough resources. That's why I worked hard to create this course, so that many of you can learn real-time web development more easily through this single lecture.

The Channels library inherits the philosophy of the high-productivity Django framework. It helps you reduce repetition and focus on the core. Let's learn how to correctly understand the Channels library and build a real-time WebSocket chat service with high productivity based on Channels.

By taking this course, you will gain a deep understanding of Channels and be able to quickly build real-time web services with Django's high productivity.

📢 Please read before taking the course.

  • Korean subtitles have been applied to the latter 60% of the uploaded lecture videos, and subtitles for the first 40% are currently in progress. The remaining subtitle work is scheduled to be completed by December 2022.
  • As of Friday, December 23, 2022, all subtitle work has been completed.

Recommended for these people 🙋

Those looking for a
new challenge after learning the basics of Django

Those who want to add
vitality to static web pages

Those who want to
create a real-time chat service

Those who want to learn Channels
and gain a deep understanding


Course Features ✨

A lecture where a true Django-holic developer
extracted only the essentials of Channels

Step-by-step from the basics
Building up WebSocket communication

Lecture Slides
Provided as PDF

Korean subtitles for all lectures
to help you understand the content quickly!

Rich WebSocket Examples:
Echo messages, live blogs, and web chat


Learning Content 📚

1. Key Components of Channels

  • We will summarize the core concepts of Channels.

2. (Practice) Implementing a Super Simple Echo WebSocket

  • By implementing an Echo WebSocket with Channels, we open the curtain on learning Channels-based chat services.

3. (Practice) Sending and Receiving JS Objects via WebSockets

  • In all communications, the process of serialization/deserialization is inevitable. We will look at common mistakes made during the serialization process in JS, and explore how to perform JSON serialization/deserialization in WebSocket clients and Channels.


4. Running and Connecting to the Redis Server

  • We will look at how to integrate Redis Enterprise Cloud's Free Plan into a Django project, how to register Redis account information as environment variables, and how to efficiently load and process them in Django. Finally, we will check the commands to run a Redis server using Docker.

5. Inter-process communication using Channel Layers

  • Channels supports inter-process communication through the Channel Layer. We will examine the types of backends supported by the Channel Layer and summarize its core APIs.

6. (Practice) Web Socket Liveblog

  • We will create a live blog service that responds in real-time to blog post additions, edits, and deletions on the server without needing to refresh the webpage. You will be able to experience the concise and robust power of Django Channels.

7. Data types that can be sent to the channel layer

  • Serialization and deserialization are inevitable in all communications. We will examine the serialization methods used in communication with the channel layer and take a detailed look at the serialization constraints within the channel layer.

8. WebSocket Reconnection

  • Networks can be disconnected at any time. Even with WebSockets, which require a persistent connection, disconnections can occur at any moment. We will look into two methods for handling WebSocket reconnection.

9. Inheritance Relationship of Consumer Classes

  • In Channels, the subject of request processing is the Consumer. We will examine the inheritance relationship of the Consumer classes provided by Channels and detail the roles of each.

10. Building a Real-World Chat Service

  • As the core part of this course, we will create a chat service by efficiently using Django Channels.

11. Security

  • As a security feature supported by Channels, it provides two types of middleware to defend against WebSocket CSRF attacks. We will examine examples of CSRF attacks and look in detail at how to configure these two middlewares.

 


Expected Questions Q&A 💬

Q. Are there any environmental requirements or other precautions to consider before taking the course?

As mentioned in this lecture, we do not cover setting up the development environment. For setting up the development environment, please refer to the "Preview" of the development environment setup section in <Python/Django Introduction Starting with Django Design Philosophy>, which has been made publicly available.

It is recommended to have a computer with Docker installed for installing and running Redis. Even if you are unable to install Docker, do not worry. I will show you how to use the managed Redis service from Redis Enterprise Cloud at redis.com under their Free Plan.

Q. What will I be able to do after mastering the content of this course?

You will be able to develop real-time web services with high productivity using Django.


Instructor Introduction ✒️

I am Jinseok Lee, a software developer who is passionate about Python and Django.

  • Python holic, developer with 16 years of experience in Django practice
  • Operator of the Django Q&A community Ask Company with Django/React (formerly Ask Django)
  • Microsoft Azure MVP Award Winner (2016–2021, What is a Microsoft MVP?)
  • Seoul National University, Venture Management Interdisciplinary Program, Python/Django Lecture "Web Programming for Venture Startups" Instructor (2016/2017)
  • Fastcampus, Web Service Development Camp (Python/Django) 3rd Class Instructor (2015)
  • Lectures and consultations for numerous universities and corporations: Seoul National University, KAIST, Pusan National University, Hanyang University, Kookmin University, Samsung Electronics, LG Electronics, LS Group, SK Planet, Encore, KB Securities, SK Telink, Hyundai Motor Group Innocean, Koscom, Naver NIT Service, Art Center Nabi, Bank of Korea, Korea Evaluation Institute of Industrial Technology, etc.

Recommended for
these people

Who is this course right for?

  • Those who have mastered the basics of Django and are looking for a new challenge

  • Those who want to quickly learn real-time web service development

Need to know before starting?

  • Python Language Basics (Functions, Classes, Decorators)

  • Django Basics (Understanding Views, Models, and Templates)

  • Frontend Basics (HTML, CSS, JS Basic Syntax)

Hello
This is pyhub

3,152

Learners

154

Reviews

934

Answers

4.8

Rating

5

Courses

Software developer passionate about Python and Django

  • Python/Django Q&A and education service, owner of Python Sarangbang

  • Python Sarangbang with Django/React Community (formerly Ask Django) Administrator (trước đây là Ask Django)

  • (Former) Microsoft Azure MVP Award Recipient (2016–2022)

External Activities

  • Offline Education: SK Telink, LS Group, Samsung Display, Pusan National University Information Technology Services, Seoul National University Venture Management Combined Major, Fast Campus Web Service Development Camp 3rd Class, etc.

  • Technical Consulting: Euclidsoft, Pusan National University, Korea Evaluation Institute of Industrial Technology (KEIT), Korea Communications Agency (KCA), etc.

I will be your Python/Django/React pacemaker. 😉

More

Reviews

All

18 reviews

4.7

18 reviews

  • happysseul6274613님의 프로필 이미지
    happysseul6274613

    Reviews 2

    Average Rating 5.0

    5

    100% enrolled

    It was so hard to self-study Django channels, but this course was great because I was able to learn the concepts! I'm going to use what I learned from this course in my ongoing project to achieve great results! Thank you so much for thoroughly explaining all the channels-related knowledge throughout the entire course!

    • hoosiki님의 프로필 이미지
      hoosiki

      Reviews 4

      Average Rating 4.0

      5

      100% enrolled

      I've looked for videos and lectures related to Django Channels, but I haven't found any lectures as helpful as this one. The content covers a lot and moves quickly, so you can't let your mind wander even for a moment, making it hard to watch in a relaxed state. However, it's been extremely helpful because it teaches the necessary feature implementations for WebSocket authentication and building actual chat services. While these might be issues you could resolve through direct implementation using searches or ChatGPT, there's a lot of content that's good to know in advance.

      • kdh43038382님의 프로필 이미지
        kdh43038382

        Reviews 5

        Average Rating 4.0

        4

        78% enrolled

        • linsay0703576님의 프로필 이미지
          linsay0703576

          Reviews 14

          Average Rating 4.9

          5

          57% enrolled

          It's a very interesting lecture to listen to after completing the Django basic lecture. This lecture is older, so there are differences in versions, but it's also fun to fix errors one by one for the latest version. It's fun!

          • n03192295687ungi2614님의 프로필 이미지
            n03192295687ungi2614

            Reviews 3

            Average Rating 5.0

            5

            30% enrolled

            Similar courses

            Explore other courses in the same field!

            $42.90