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.
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.
During the lecture, we will proceed with a 1-month trial license for PyCharm Professional.
We will check the applications submitted by every Friday and send the coupons to the email address you provided.
Please register the received coupon immediately. If you do not register it, you will no longer be able to receive license support from JetBrains.
Coupon applications are limited to once per person per course.
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
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)
(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.
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!
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.
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!