Complete Guide to Python/Django Web Service Development with React
Lay a solid foundation for Python/Django web service development. Experience the latest web frontend trends through React. All you need is Python to get started. Make your imagination a reality.
Almost all the features needed for backend development It is supported by Django .
Don't reinvent the wheel. Django supports almost all the features you need for backend development. Enjoy Django, reduce repetition, and save your time. Maximize your development productivity, significantly reduce the code you need to develop, and improve the readability of your code with Django/React.
To do that, you need a solid foundation in Django/React. You can build that foundation solidly through this one lecture.
You can learn Django backend, React frontend, and container deployment in depth in one lecture.
You can learn Django and django-rest-framework (hereinafter referred to as DRF) from the basics to practical application through theory and practice.
You can learn practical web service development that combines the latest React-supported functional components, Hooks, and Django APIs.
You can learn how to deploy web services without infrastructure stress by utilizing containers (Docker). Experience deployment to AWS and Azure.
As you develop similar services in various ways over and over again, you will come to understand the characteristics of each technology and naturally practice them repeatedly.
Note
Courses that were being serviced on other platforms have been transferred to Inflearn.
Who needs this course 🔑
Without deep understanding Listing only Python code Developing Django web services Tired person
Python Basics I know the grammar, but What to do next People who are at a loss as to what to do
Direct web service I want to build it, How to start For those who don't know
Web service with Flask I tried to build it, but Service development Anyone who has experienced inconvenience
Additionally, these people may also be helpful:
✅ Those who know machine learning but want to connect it to a web service
✅ Those who have taken other Django courses but need to review Django more thoroughly
Lecture Features ✨
A lecture that deals with Django deeply and sincerely
This course is designed to help you understand and utilize Django correctly. I sincerely wanted to convey Django's design philosophy. The following are excerpts from Django's design philosophy .
Django uses the minimum amount of code possible, avoiding boilerplate code.
The main focus of a 21st century web framework is to speed up web development. Django should enable incredibly fast web development .
Duplication is bad, normalization is good. Django encourages you to not repeat yourself (DRY) and to create the most with the least amount of things.
In-depth coverage of both the backend and frontend in one lecture.
There is no royal road. It is just learning steadily and step by step. Come on that path with me. I will become your Python/Django/React pacemaker. Below is a quote from JangOO’s course review.
To be honest, there were many difficult parts when I first heard it... but after listening to it over and over again and repeating it, I felt that there was no better lecture for grasping the concepts. The best part was that it taught me how to use it in conjunction with React, so I was able to create both the front and back ends with my own hands and see the results for myself, which was really great.
A lecture that combines 13 years of practical experience with Django and 6 years of Q&A experience from a developer who is serious about Django
I have been using Python since 2004 (version 2.4) and Django since 2008 (version 1.0) 1.0 (2008), and have practical experience in carrying out various web service/embedded/factory automation (FA) projects with Django and Python.
Experience answering various questions related to Django/Crawling/Python through the Ask Django community since 2015
Thousands of hours of Django/Python offline lecture experience since 2015
This is not a newly created course. It is a course that has been continuously refined and upgraded through 6 years of offline and online lectures . It will continue to be upgraded in the future.
A teacher who loves asking deep questions
We welcome all kinds of questions. Any questions related to Django/React, even if they are not covered in the lecture, are welcome. There is no such thing as a stupid question in the world. Please ask various questions. Let's think together and grow together.
I like the old life coding article by Egoing, so I'm quoting it.
Do some research before asking a question. You will find that everyone's life is similar.
Manners are the best invention for asking questions without hesitation.
If you delete a question, the hard work of the answerer will also disappear.
If you ask a question in a private way, such as via email or message, no one else will be able to see the answer.
A hundred descriptions can't beat a single screenshot.
Attaching the code makes the question understandable to anyone in the world.
One question should contain one topic so that the answer will be sharp.
If you tell us about your trial and errors, we can focus on the problem you want right away.
As an aside, the more trouble the questioner has, the better the answer will be. Also, if you describe the process of solving the question along with the solution, it will be helpful for later searches and will be a great help to others.
Unlimited access and continuously updated courses
In order for this lecture to be a reference for Django, and to avoid outdated content, I promise to continuously update the changed Django functions. I will try to make this a lecture that continues to evolve. You can finish the basics of Django with this one lecture. If there is anything I missed, please let me know. I will reflect it immediately.
Slide-based theory lectures, and PDF provided
The slides used in all theory chapters have been refined and polished over many years of lectures. They are also provided as PDF files, so you can take the lectures while taking notes.
I have also carefully added links to official documents that you may find useful to refer to in the PDF document. Please read the relevant official documents whenever you have time. Django has really well-organized official documents. The answers are in the official documents. You should make it a habit to look at the official documents. That way, your skills will improve quickly. Don't start by Googling, but if you do, if you Google accurately, the official documents will probably come up.
I added a link to the official Django documentation to the document.
All hands-on code is shared via a GitHub repository.
All the practice details are committed to the repository below. This is convenient if you want to check the practice details with your own eyes.
This course requires an understanding of basic Python grammar.
Understanding of basic JavaScript grammar (functions, Prototype, this, etc.)
Experience creating simple pages with Django is required.
The most important thing is your enthusiasm for development and persistence. You can't understand everything at once. Only persistent practice can improve your skills. I will be your pacemaker on that journey.
I strongly recommend that you become familiar with the basics of Python syntax before starting this course. At the very least, please review Python functions/classes/inheritance/first-class functions/decorators before starting.
Among these, inheritance and decorators are essential grammars for understanding and customizing various functions of Django. The decorator concept is similarly applied to React's HOC (Higher Order Components). Since Python and JavaScript are scripting languages, they have many similar grammars.
What you will gain by following this lecture faithfully 📜
You will be able to build a solid foundation for understanding the web, Django backend, and React frontend development. Through this, you will be able to create simple Instagram/Baedal Minjok services in no time. Of course, you cannot reach this level by simply listening to the lecture once and following the code. Attend the lecture diligently, think about it, ask questions, and develop.
Once you understand Django well, you can quickly start using Python web frameworks such as Flask or FastAPI. They may seem different, but they are similar because they are all web frameworks developed in Python. You can mix and match them in one service as needed.
In the last chapter, we will also explain in detail about deployment using Docker containers. If you use this, you can deploy web services more easily regardless of language/framework on various cloud vendors :-)
What you'll learn 📚
Orientation (2 sessions, 32 minutes)
Let's understand the technical background of Django and React.
Django Overview (5 lessons, 51 minutes)
We will set up the Django development environment and look at the core functions of Django. And in order to experience the power of Django, we will conduct a Django blog development live coding show. The source code editor will use Visual Studio Code, and we will explain the development environment settings centered on Windows.
Let's understand the different ways to handle HTTP requests through Django Views.
Web Frontend Basics and How to Handle Static Files in Django (Lecture 6, 1 hour 46 minutes)
Learn the most basic web front-end HTML/CSS/JS development methods and how to place CSS/JS files within a Django project.
Efficient Data Validation and Storage Using Django Forms (Lecture 9, 3 hours 4 minutes)
Learn validation using Django Forms and how to use it in View. All data sent to the server should never be trusted andmustbe validated before being reflected in the DB.
For example, if a request for withdrawal of 1 million won comes from the bank, you should check if there is 1 million won in the balance before making the withdrawal. It may seem obvious, but many people develop programs to process withdrawals of 1 million won without checking the balance. They find validation cumbersome or difficult, so they say they will implement it first and then leave it for later.
These Djangos are well-linked with various functions to systematically perform validation. If you know Django well, you can perform systematic validation with minimal code and manage our service more safely. Isn't it the purpose of using a web framework to make good use of and enjoy these functions? You can see as much as you know and use as much as you know. Just typing is not development .
It is an essential function that must be taken care of in the service authentication security. There are various vulnerabilities on the web, and it may be difficult to take care of these vulnerabilities one by one. Django provides almost all the functions required for authentication in Django Basics. The authentication function is guaranteed and maintained by the Django team.
Just because you use the features provided by the Django team doesn't mean you're blocked from customizing. It's well designed so that we can customize as much as we want. If you follow the default logic of the auth app 100%, there's almost nothing to code. Let's implement login/logout/signup functions by making full use of the auth app, which is the default Django app.
Creating an Instagram St using Django Forms/Views in a non-SPA manner (Lecture 23, 7 hours 5 minutes)
Now it's time for practice. Let's develop an Instagram St service together, making full use of Django's features.
Creating an efficient web API using Django django-rest-framework (hereinafter referred to as DRF) (Lecture 15, 5 hours 45 minutes)
Django's basic features are focused on implementing web pages. They can be used for developing web APIs, but they do not 100% match the usage. That is why DRF, which focuses on developing web APIs, was developed. DRF is not a separate library from Django, but a library that follows Django's design philosophy. DRF's Serializer follows the philosophy of Django's basic Form. DRF's ViewSet/APIView was developed based on Django's basic CBV. Therefore, in order to use DRF well, you must be good at Django's basics to 100% understand and utilize its functions.
Learn ECMAScript 6 (ES6) grammar and the core concepts of React.
Creating Instagram in SPA style with React (21 lectures, 6 hours 53 minutes)
Up to the previous section, we have learned all the basic theories required for Django/React development. Now , it is time to practice mixing React and Django together. Let's develop the Instagram St. service together by making full use of the functions of Django/React. In this lecture, we will not implement all the functions of Instagram St. Since many of the necessary service functions have similar technical implementations, we will explain the core service functions without duplication.
Deploying Django/React services on AWS/Azure infrastructure based on containers (Lecture 14, 3 hours 29 minutes)
Learn about the need for container-based service deployment, how to install Docker, and how to build and deploy Docker images.
Expected Questions Q&A 💬
Q. Is this a lecture that non-majors can also take?
This is a proven lecture that has been conducted for non-majors for several years. If you understand the basic grammar of Python, you can follow it. Of course, you may not understand it after listening to it once. There is no one who understands it after listening to it once. Don't be too disappointed. It is natural because you are learning an unfamiliar field. Efforts with a clear direction will not betray you. Please watch it several times, think about it, and learn. If you still have doubts, please ask questions right away. Let's work through it together. :-)
Q. Isn't Python a beginner's language?
Python is more readable than other languages, and can efficiently perform many tasks with short codes. Although Python has not been popular in Korea for very long, it has been a major language overseas for more than a decade, and is actively used in various fields including the web.
And Python is not slow. Just as English becomes Konglish if you don't understand it properly, Python code used without understanding Python properly is not efficient. If you understand and use Python well, you can quickly develop code that runs fast. Can we say that code developed in C runs fast in all cases? If you develop it to run slowly, it will run slowly. And although Python is slow in CPU operations, Python libraries developed in C/C++/Rust solve the parts that require fast CPU operations. Libraries like numpy. So, you can use Python to do data analysis and machine learning. :-) In fact, many of Kakao's machine learning APIs are developed in Python. (Reference: [YouTube - PyCon Korea] Application Server Development Review for Recommendation System @kakao )
Q. Isn't Django too expensive to learn, slow, and has too many limitations?
Django is a mature framework that has been around for over 17 years since it was released in 2005. (Spring was released in 2003.) Django is a full-stack backend framework, and almost all the features required for backend development are developed and being developed within Django.
Django is just a single Django that provides many features. Having many features does not mean that it is slow. Micro web frameworks like Flask provide fewer features. Having fewer features does not mean that it is fast.
The first of Django's design philosophies is "loose coupling." Django provides a variety of functions in a full stack for convenience, but each function is independent. You can select and use only the functions you need, and you can combine them with various Python libraries.
Toss has an organization called "Toss Internal" that creates services for the 1,000 or so Toss team members. This organization develops services with Django and React. ( Related job posting for Toss: Server Developer (Internal Product) ) Why did the Toss Internal team choose Django and React?
Q. To what extent does the course cover Django/React?
We cover all the basic technologies of Django required for basic web service configuration. Django channels and Celery are not covered. In React, we cover everything required for basic web service configuration except Redux. The reason Redux is excluded is that although many people are still using Redux, I think it is a technology that unnecessarily increases the complexity of React applications. Redux is a technology that came out when React did not have a proper state management technology. There are various state management technologies now. Among them, we will take a deep look at Hooks and Context API.
Q. Is there a practical environment that I need to prepare before taking the course?
Any environment where Python and nodejs can be installed is possible. Windows/Linux/Mac environments are all good. If you have difficulty installing Python/nodejs, try using the cloud IDE service . You can use the Linux environment with a web browser.
On Windows, we recommend Windows 10 Pro or higher for easy Docker Desktop installation. Windows 10 Home may require registry modifications, which can be troublesome. Since the Cloud IDE service is a service powered by Docker, running Docker inside the Cloud IDE container is not possible.
As proven by previous students Vivid class reviews 💬
This course was originally provided on another platform, but has been transferred to Inflearn. We are sharing our course reviews from the previous platform.
on1OO It really explains in detail, focusing on very detailed concepts. It may be difficult at first, but as the concepts accumulate, I think I understand them deeply, so I was really satisfied!! I definitely recommend that you study at least the basics of Python and listen to it. It covers everything from the basics of Django to deployment. I also really liked the part where he gives tips that are hard to understand when studying alone.
ossOO I would like to thank instructor Lee Jin-seok for creating this course. I am still taking the course, but as each chapter progresses, my questions are being answered. I bought several books about Django and took courses related to Django to learn on my own, but it was very difficult to learn the in-depth parts of Django by myself. There were many parts that I used without understanding and thought, “What? How can I do it?”. As I listened to instructor Lee Jin-seok’s course, I think I learned why it works this way, what its structure is, and how to use it. The course progresses sequentially, such as admin > model > view, but each chapter is taught with consideration for connectivity, and the content is also deep, so it seems like a great course for beginners to intermediate users like me. Also, while working with Django, I thought a lot about the front-end, and I thought about integrating Django with Vuejs and other front-end tools, but I chose this course, which is a one-shot package, because I thought it would take time and a headache to learn on my own. 154,000 won is not a small amount of money, so I hesitated a lot before paying. However, after paying and listening to the lecture, I felt that the lecturer had really thought a lot about this course, and I did not regret the money spent. The chapter progression is smooth, and the tone of voice is also good for concentrating on the course. It is a shame that the course period is limited to 180 days, but that is a matter of how faithfully I study and acquire the course materials. 😭😭 The course materials are solid, so if I acquire them well through repeated study for 180 days, I think I will be able to remember and utilize them just by looking at the course materials that were created later.
Mr. HaOO This is the most informative lecture I've ever taken. Since he has a lot of experience, he immediately deals with any errors that he encounters, so the flow of the lecture is not interrupted. His explanations are very clear, and he skips over content that needs a lot of explanation and explains it step by step throughout the lecture. I think the lecture is very well structured. I also have teaching experience, so I know that he puts a lot of effort into the lecture. It's on a different level from YouTube-style web lectures. It's a really informative lecture that covers everything from the basics to deployment. If a friend wants to learn Django or React, I definitely recommend it. I paid the full 220,000 won, but it was worth it. You need to know basic Python grammar, and you don't need to know JavaScript at all. If you just know Python grammar, I think it's a lecture that even non-majors can listen to smoothly.
Want to see more course reviews? (See more)
liveOO First of all, thank you so much for making such a great lecture!! I heard that it was a really good lecture, so I trusted it and paid for it, and as expected, unlike other lectures, it was a lecture that I didn't regret spending money on. If you follow it properly from beginning to end, it will take longer than the lecture time, but that time will definitely not be a waste. It's a lecture that's too good to watch once. I highly recommend it to those who feel like they lack basic skills :)
Mr. HyunOO I wish there were more lectures like this. Django itself has a lot of abstract parts, so it's easy to make something, but there were many cases where I didn't understand the internals. In that sense, the part where you explained the internal code was very helpful. I was so impressed that I even wrote a review on my blog recommending it. Thank you :)
Mr. Lee OO I took the lecture at askcompany and I want to pay again and do it properly this time. It is very helpful, from the basics to the details. I couldn't listen for a while since the semester started, but I will try to listen to it again even if I have time. Thank you for making such a great lecture. 'Life is short. Use Python and Django.' The saying comes to mind. I will work hard.
Mr. HanOO I usually do various tasks with Python and upload APIs using Flask, but at some point, I started to need to do more work with Django, so I'm listening to this. Since you create examples one by one with code, you can learn the necessary parts very easily and in a short period of time. If you need to study Django, I highly recommend it!
Mr. Yang OO This is a really good lecture. I had to analyze and modify open source made with react and django, so I'm learning react and django in a short period of time. It's difficult, but I'm learning well because you explain it well. I only did applications, but I had no concept of full-stack development of web programs with react and django, but it's very helpful. The information you give me as tips here and there is also very useful. I think it would have been difficult just with the book. There's a lot to learn and know. I'm still listening, but I'm very happy that I'm learning about the latest web technologies through this opportunity. Thank you so much for making this lecture.
Mr. OO I highly recommend it. It is the most satisfying course among the courses I have paid for. You may think the price is a lot, but it is a course that is filled with Lee Jin-seok's passion, effort, and know-how. :) It is the most detailed Django course in Korea!
Mr. ROO The detailed lectures are really good. At first, when I didn't know anything, I had a headache because I didn't know what he was talking about, but after listening to it for the second time, I realized that he was explaining things in order to help me understand the basics. I'm still taking the class, but I don't regret paying the tuition fee~
Mr. KaOO I am studying happily because the instructor explains everything thoroughly. I originally studied Django and made a homepage with Django template, but after studying React, I was at a loss as to how to connect with API and how to distribute it. After taking the instructor's class, I feel like my mind has been cleared up a bit! If there is something confusing, I keep listening and repeating it, and then I understand it. Thank you. I will run until the end!
Introducing the knowledge sharer ✒️
I am Jinseok Lee, a software developer who is passionate about Python and Django.
Pythonholic, 12 years of Django experience developer
Seoul National University, Joint Major in Venture Management, Python/Django Lecture "Venture Startup Web Programming" Instructor (2016/2017)
Fast Campus, Web Service Development Camp (Python/Django) 3rd Instructor, 2nd Assistant (2015)
Lectures and consulting at numerous universities and companies: 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 Institute of Industrial Technology Evaluation and Planning, etc.
I am working as a junior Django developer and I took the course to organize it.
I think this is the most in-depth and know-how-filled course among the Django courses I have taken.
Personally, I liked it.
- It covers the consideration of component-based code structure rather than simply extracting screens.
- ORM utilization and query tuning.
- The concept of Django MTV pattern structure.
- Appropriate use of functional and class-type views in Django or DRF.
Thank you so much for the great course. I would like to take other courses if you open them.
I hope you open an advanced course on asynchronous using Django Channels, Celery, etc. Fighting!
Even in 2021, when Python is all the rage, it is still the best in the military. It is said that there is no other lecture that can compare to “Jinseok Lee’s Janggo” in Korea or abroad.
I think it was around 2017? When I first started learning Python, I first encountered Jinseok’s lecture (on another site). I learned the basics of Python grammar on my own and had no understanding of the web, so there were a lot of holes. Jinseok’s lecture was a great help not only in learning Danggo, but also in learning the basics of Python and programming.
Thanks to this, I have experience in creating and operating a blog myself, even though I am not a professional developer, and I have also done a very successful side job creating simple web pages. Many people recommended or introduced me, so I earned dozens of times the monthly tuition fee without having to do any separate platform, advertising, or promotion. (In my case, I was lucky enough to be able to work on temporary local festivals, ㅇㅇ Festival, or ㅇㅇ Contest webpages produced and operated by local governments or small and medium-sized event companies. The framework is generally similar and the production difficulty is easy, so it's good to try.)
Compared to that time, there were many additional curriculums such as React, Instagram tutorials, and AWS in Jinseok's lectures, but I would like to give him a big score for the fact that this lecture was not created in a day or two like roasting beans in a flash. It's a lecture that tastes like well-cooked fermented soybean paste or fermented soybean paste. It's well-polished, so there's no excessive or insufficient part. (Of course, it might be different for current web developers, but for beginners to intermediate level, I think this one is enough.)
When my colleagues or acquaintances ask me to recommend Python web development, I never mention another lecture. I only recommend "Infraun's Lee Jinseok." I wonder if there are other lectures that are this good. And I've searched other sites many times, (of course there were some good lectures) but I don't think there was a lecture as good as this one.
I want to recommend this lecture more strongly, but I guess my writing skills are limited to this pointㅜ I'll stop here. In conclusion, since it's an unlimited course for life, I recommend that you take it at least once in your life so that you can refer to it when you need it. Have a happy day!
Hello, teacher. I also took the course and gained confidence that "If I repeat this properly, I can do full-stack web development." So I'm thinking of recommending the course to my older brother who is entering the late stage of his career.
However, since I'm late, it seems like it'll be difficult for me to become a new employee, and my opinion is "I want to work as a freelancer or work from home for a moderately long time." Since your experience in a side job creating web pages seems to match, can I ask where you found such a side job or freelance job?
It's surprisingly heavy to listen to Hangang's Hangang; I don't think this is a lecture that you can understand after listening to it once.
However, it seems like a good lecture to learn deeply while working as a practitioner.
If I have a wish, it's that the current Django version is version 4, and at the time of the lecture, it was version 3.
If there are any parts that have improved or parts that are not compatible, please improve them (there haven't been any yet)
Seriously, this is the best lecture by the best instructor among all the online and offline lectures I've ever taken in my life. At least in Korea, I don't think anyone can follow this person when it comes to Django web development. He's really great!!!!!!!!!! Thank you so much~! I love you~