강의

멘토링

로드맵

BEST
Programming

/

Full-stack

The Complete Guide to Python/Django Web Service Development with React (Based on Django 4.2)

Solidify your foundation in Python/Django web service development. Learning Django takes time, but you can maximize your productivity through iterative development. Turn your imagination into reality.

(4.8) 20 reviews

658 learners

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

Reviews from Early Learners

What you will learn!

  • Highly productive web service development based on Django 4.2

  • Database Schema Management with Django

  • Common Migration Failure Cases

  • A deep understanding of Django ORM models and model fields.

  • Developing and Utilizing Web Components Centered on Django

  • High-productivity input form processing using Django Forms

  • A deep understanding of Django's default authentication.

  • High-productivity Web API Development with Django REST Framework

  • How to Utilize Session Authentication in Web APIs

  • Modern JavaScript Syntax for Web Frontend Development

  • Essential React v18 Theory

  • Django/React Integration and Service Development

  • Django/Next.js integration and authentication using session cookies

  • Deploying Django/React services on a Linux virtual machine

🔥 The existing Python/Django Web Service Development Complete Guide with React course is based on Django 3.0, and this course is a renewal course based on Django 4.2 LTS. It is not a simple renewal, but the entire curriculum has been overhauled and reorganized so that you can understand the power of Django and apply it to your work. The previous course is no longer for sale. If you need the previous course, please send an email to help@pyhub.kr and we will guide you.

If there is anything you don't understand during the lecture, please feel free to ask questions. If you think about your question for too long, it will actually interfere with your learning. Your questions will complete your learning.

Take the lecture and get a PyCharm Professional coupon! 🎫

The best IDE for Django development is PyCharm Professional (paid tool). In the course, the development environment setting covers PyCharm Professional and Visual Studio Code, but the course will be conducted with PyCharm Professional. We received a 6-month coupon from JetBrains, the developer of PyCharm. After taking this course, you can apply using the method below.

  • After attending the lecture, please apply for a coupon by filling out the Google form . Each person can apply for one coupon.

  • We will send coupons to the email addresses you have applied for on a first-come, first-served basis every Friday evening . If you do not receive them by next Monday, please contact us by email and we will resend them to you via reply. Emails are often missed these days.

  • If you are a student or teacher, you can receive support for all JetBrains tools for one year through JetBrains' Student Support Program , so be sure to apply.

  • You must register the coupon you received immediately. Otherwise, you will no longer be able to receive coupon support from JetBrains. Please apply only if you will use the coupon.


Django is a full-stack web framework.

Trends come and go, but the essence of web development doesn’t change. Technologies like React and Vue for client-side rendering have become popular. These technologies have made the user interface of web applications more dynamic and responsive. Then, technologies like Next.js for server-side rendering began to gain attention. These technologies are not completely new, but rather, they are modern interpretations and developments of technologies that were popular 10 to 20 years ago.

In the past, server-side rendering was widely used with technologies such as PHP or ASP. These were methods of pre-generating the content of a web page on the server and delivering it to the user. Current technologies, such as Next.js, essentially follow the same principle of rendering a page on the server and delivering it to the user. However, modern technologies are more efficient and focus on improving the user experience.

It is important to focus on the essence rather than trends. Django is a good example of this principle. Django, which has been continuously evolving and improving since 2005, helps you create better web applications faster and with less code. Django is a full-stack framework that provides an efficient development process and powerful functions, satisfying the essential needs of web development. Therefore, even if web development trends change, the value of Django will continue.

I recommend this to these people 🙋‍♀

From the basics of web service development to application,
For those who want to build a solid foundation for distribution


Starting from writing simple HTML code, to developing web pages, developing web components, developing APIs, and deploying Linux servers!

Django's high productivity
Anyone who wants to experience it


Just as English needs to be understood as an English culture, not a Korean culture, you can only experience high productivity with Django if you understand and utilize its philosophy and culture.

Various web based on Django
Anyone curious about front-end integration


We'll show you how to integrate various web frontends to keep up with the latest Django trends.

Features of this course 🤩

A lecture that deals with Django deeply and sincerely

This course is designed to help you understand and use Django properly. It aims to provide a deep understanding of Django's design philosophy. It briefly introduces some of Django's key design philosophies .

  • First, Django strives for simplicity by using as little code as possible. It avoids unnecessary rules or fixed code styles. This helps developers implement the features they need more quickly and easily.

  • Second, modern web frameworks focus on speeding up development. Django is designed to achieve this goal, enabling rapid web development. This saves developers time and increases productivity.

  • Third, avoid duplication and pursue normalization. Following the "Don't Repeat Yourself (DRY)" principle, Django encourages reducing repetitive work and implementing maximum functionality with minimal code. This makes the development process more efficient and easier to maintain.

These philosophies play a key role in making Django more efficient and easier to use for web development. Through this lecture, I hope you will gain a deeper understanding of Django's powerful features and philosophies.


In-depth coverage of both backend and frontend in one lecture.

Just because React and Next.js are popular, you don't have to develop all the pages of your service with React and Next.js. You can focus on developing pages where React and Next.js are useful, and on other pages, you can save time and develop web services quickly with Django technology while being more productive. It's about choice and focus.

Learn how to develop a fast web service development centered on Django, and learn how to integrate various web front-end technologies centered on Django. This way, you will have a flexible and efficient approach to respond to various web development needs. This course will give you the knowledge and experience needed to build a strong technical foundation on both the back-end and the front-end.


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 documentation that you may find useful in the PDF document. Please read the relevant official documentation whenever you have time. This lecture cannot cover all of Django's content. Django's official documentation is really well-organized. The answers are in the official documentation. You should develop the habit of reading the official documentation. That way, your skills will improve quickly.


Short, edited lecture videos of about 10 minutes

Each lesson is short, lasting about 10 minutes, so you can learn while maintaining focus.

We recorded based on a pre-written script, and all unnecessary parts of the lecture were removed during the editing process. These short lectures help you use your time efficiently. Although it took a lot of time and effort to prepare and edit, this investment by one person will save thousands or tens of thousands of learning hours and increase learning efficiency.


First, explain the code, then practice the code to increase your understanding of the code UP UP!!!

In code practice, the code is explained in detail first and then practice is continued. Rather than explaining the code while practicing, listening to the explanation first and then practicing will be of great help in increasing your understanding of the code.


Provides a link to the practice code so you can copy and paste it.

Due to the nature of development lectures, typing the practice code takes a lot of time and typos can occur. It may be ideal to learn by typing and experiencing errors yourself, but this process can sometimes be very difficult. Therefore, to make it easier for you to follow the practice, we provide a link to the practice code in the lecture notes below each lecture video. This allows you to copy and paste the code, saving time and reducing typos.

In addition, we provide code links for each lecture in commit units. This allows you to quickly check and fix any code that behaves differently from the lecture content. These resources will help you follow the lecture more effectively and learn smoothly.

Learn about these things

Section (0) Building a development environment

"""We will prepare to proceed smoothly with the lecture by correctly understanding and setting up the development environment."""

To get started with Python/Django web development, it is essential to set up a smooth development environment. This section will guide both Windows and Mac users to properly install and set up development tools such as Python, Django, PyCharm, and Terminal. Setting up a development environment may seem relatively simple, but if you miss a few key points, you can spend days setting up the environment. Just as a craftsman must fine-tune and maintain his tools to produce the best results, it is important for developers to set up their tools well and keep them in optimal condition . This section will help students to set up an environment where they can smoothly proceed with lectures and labs.

Section (1) A quick taste of Django from static web documents to dynamic web documents

"""You will learn the flow from static web to dynamic web intuitively and understand the overall big picture of web development."""

This is a warm-up stage where you can quickly practice and get a feel for the basic web development elements before going into full-scale Django web development. I hope you can feel the big picture of how the basic components of the web are connected by simply experiencing the process of starting from a static web page and developing it into a dynamic web page. The goal is to learn the flow of web development intuitively rather than trying to memorize every detail.

  • We'll start with an HTML document generated from a Word document, add some simple JavaScript to make it interactable, and cover the process of serving the HTML via a web server.

  • Afterwards, you will get a taste of the basic concepts of Django through a single-file Django project, and quickly experience dynamic web page elements such as loading external data, outputting it in HTML, and adding a search function.

  • We'll also show you how to generate HTML responses based on information stored in a database, address security threats like SQL Injection, and improve the styling of your web pages with Bootstrap 5 and Tailwind CSS.

  • Finally, we'll compare the differences between server-side rendering and client-side rendering to help you briefly understand the features and pros and cons of each.

Section (2) Review of Django's core features

"""By systematically understanding Django's basic apps and core functions, we will learn the true value of Django and seek efficient development methods."""

We review the core features and basic apps that maximize Django's productivity. By systematically understanding the main tools provided by Django, we aim to help you understand the true value of Django beyond simply copying and using model and view code .

Rather than approaching Django as a simple tool for creating list/create/edit pages, we will present ways to save time and effort during the development process by understanding the functions and philosophy of Django. First, we will look at 15 basic Django apps and find out what role each app plays in an actual project and in what situations it can be usefully utilized.

Next, we delve deeper into 14 of Django’s core features with example code. This course is designed to go beyond simply listing features and give you a full picture of how Django can be used in web development.

This section will help you understand the structure and functions of Django, and gain a deeper understanding of the various possibilities and values that Django has.

Section (3) Creating a Django Core Feature Sampler Service with Melon Data

"""Learn the core functions of Django intuitively through a simple query service using Melon data and build confidence in Django web development."""

This is the second "warm-up" stage where you will practice the core functions of Django web development. You will experience the practical functions of Django by creating a simple data search service using Melon TOP100 music data. Through this process, you will become intuitively familiar with how Django's functions are implemented in web applications.

In this tutorial, we will learn how to load data into the database using custom commands and query it through models. We will also learn how to manage data using Django's admin features.

The goal is to build the confidence needed to start web development with Django by overcoming the initial vague fear through two warm-ups . This section will provide a solid foundation for starting a long journey of learning Django.

Section (4) Request processing via View function

"""Understand the differences and advantages of function-based and class-based views, and gain the ability to efficiently generate responses by selecting the appropriate view method for request processing."""

Learn how to handle and respond to various requests using Django's View feature. View is the core element that handles the web request/response flow of a Django application, and it can generate responses in various formats such as HTML, images, CSV, and Excel.

Learn the differences between function-based views and class-based views, their respective strengths, and when they can be appropriately used. In particular, when repetitive View patterns are required, class-based views can be used to handle requests with code close to the configuration. However, class-based views are not suitable for all situations. It is important to mix function-based views and class-based views appropriately.

This section also covers the API of class-based views in depth, so you will learn how to understand the structure of each class and how to utilize it . Class-based views are difficult to apply without a sufficient understanding of their structure . It is essential to clearly understand this.

Section (5) Database query through model

"""Understand how various databases and Django models are linked, and grasp the actual working principles of Django model code through operations at the SQL level"""

Learn how to handle various databases through Django models. Django models can connect to databases such as SQLite, PostgreSQL, MySQL/MariaDB, Oracle, and SQL Server with a single Python code . We will cover the configuration method for connecting each database and Django project with code to help you understand database connection. In addition, you will experience database configuration in a real environment through hands-on practice of creating PostgreSQL and MySQL databases through Docker and connecting them to Django projects.

We will also explain the purpose of the various model fields that Django provides by default, along with example code , to help you understand how each field is actually stored and utilized in the database.

Finally, we will use the django-extensions library to verify the process of creating a queryset object and querying the database through the model manager at the SQL level . This will help us better understand how Django model code actually works.

Section (6) Managing Database Schemas through Migration

"""Learn the basic concepts and usage of Django's migrations and build a foundation for efficiently and reliably executing database schemas"""

Migration is an important tool in Django that helps you manage the database structure with Python code and easily reflect changes to Django models to the database . Without the migration function, you would have to manually manage the database schema, which is cumbersome and error-prone, and it becomes very difficult to maintain as the project becomes more complex. Since you have to manually reflect each modification one by one when managing the schema, there is a high risk of inconsistencies or errors occurring in various parts whenever the model changes.

Since many people simply execute commands mechanically without understanding the migration process, it is difficult to respond when migration fails, and confusion often occurs. Some people misunderstand that migration can only cover simple situations and cannot be used in complex situations through these failure experiences. This section covers the following to help you understand migration better:

  • Learn the basic concepts and related commands for performing data migration with Python code .

  • We will practice migration by experiencing the process of moving actual data to a database using zip code CSV data as an example.

  • We cover how to efficiently migrate large amounts of data , enabling stable migration even in large-scale data environments.

  • We analyze three common migration failure cases and provide practical tips to prevent errors and effectively deal with problems when they occur.

Section (7) Custom Model Fields and Database Constraints

"""Learn how to use Django models to reflect real business needs, and learn the basics of data management and performance optimization through various database constraints."""

Learn techniques to implement various requirements that may arise in practice into Django models. In addition to basic model fields, you can experience the flexibility and extensibility of Django models by handling custom model fields and database constraints that meet specific business needs.

The main contents of this section are as follows:

  • Basic Model Fields : Learn the basic model fields provided by Django and organize the characteristics and uses of each field.


  • How to Develop Custom Model Fields : Learn how to develop custom model fields to store special data types that cannot be expressed as basic fields. For example, learn the basics of handling custom fields by implementing an IP field that stores numbers and a true/false field that stores Y/N strings.


  • Various Meta Options : Learn how to set database constraints and model properties through Meta options such as indexes, unique constraints, proxy models, etc. This will help you understand how to ensure data integrity and optimize query performance.

Section (8) Highly productive input form processing using Django Form

"""You will learn how to deeply understand Django's Form functionality and how to overcome limitations to increase flexibility. You will be equipped with the ability to integrate the process of creating and validating HTML input forms."""

Form processing is a task that requires a lot of development manpower even in front-end frameworks such as React, but Django Form can handle everything from HTML input form creation to validation, which greatly increases development productivity. In addition , since validation in the back-end is essential, learn how to thoroughly verify user input values on the server. Various security features required for form processing are a bonus.

It is true that Django Form is powerful but somewhat inflexible . However, we will cover ways to overcome such limitations and use it more flexibly , helping you increase the usability of Django Form. If necessary, you can create HTML input forms directly without relying on Django Form. In front-end frameworks such as React, you can also use Django Form to significantly reduce the work of form processing.

The main topics covered in this section are:

  • Request Objects and Response Objects : Understand the process of processing requests received through HTML Forms and responding to them.

  • CSRF Protection : We'll look at the CSRF (Cross-Site Request Forgery) attack protection that's enabled by default in Django. Don't turn off a good security feature that's already provided.

  • Form Validation : Learn how to use Forms to efficiently validate input, respond with error messages, and process only valid values that pass validation.


  • Django Form and ModelForm : Using Django Form, you can configure forms to your liking. There are many cases where you configure input forms according to model configuration. In this case, if you use ModelForm, you can configure forms according to model configuration without having to define form fields one by one. Let's understand the difference between Form and ModelForm and look at how to use each in practice.

  • Explore form fields and develop custom form fields/widgets : Learn various form fields and develop custom form fields and widgets as needed to implement customized input forms, increasing the reusability of input form fields/widgets based on Python.

  • Configuring Form Layouts with Python Code : You don't have to touch HTML directly to configure various form layouts. Let's look at how to configure various layouts with only Python code.

  • Processing Multiple Form Requests at Once : The configuration of a single input field that you receive from the user may change from time to time, and sometimes you need to receive multiple form elements at once. Learn how to process multiple form values at once to efficiently handle complex input requests.

Section (9) Django Basic Authentication Implementation in Detail

"""You can deeply understand and apply the basic structure and implementation method of Django authentication system."""

We will learn the process of implementing Django's basic authentication system one by one while deeply implementing the authentication function, which is an essential element of web services. Authentication is an essential function for security and user management. It is important to understand and implement it properly.

First, to understand the authentication method of web services, we learn the principles of cookies and sessions, and design the authentication flow in Django based on this. Then, we implement Django's basic authentication function from the ground up, and experience firsthand what role each function plays and how it works. Through this process, we will acquire the ability to easily graft Django authentication onto various existing services .

The main contents of this section are as follows:

  • Understanding Cookies and Sessions : Understand the basic concepts and roles of cookies and sessions to lay the foundation for how authentication is done in web services.

  • Implementing Django Authentication Features : We will implement core authentication features such as login, signup, logout, password reset request, and confirmation from the ground up. This will help you understand Django's authentication system in more depth.

  • Django Basic Permission Policy : Learn about the permission policy provided by Django and additional security features such as user permission management in addition to authentication.

Section (10) Django-driven web front-end technologies and web components

"""Learn how to effectively use front-end technologies centered around Django, and gain the ability to implement more efficient and maintainable web applications through component-based development."""

Learn how to develop efficient and reusable Django template-based components. Django template-based front-end development techniques allow you to implement interactive web pages without relying on JavaScript , maximizing maintainability and reusability.

The main topics covered in this section are:

  • Developing HTML5 Web Frontends Without JS : Learn how to build interactive web pages using HTML5 without JavaScript.

  • Developing Components Using Django Templates : Learn how to develop reusable components based on Django templates, and learn ways to increase consistency and maintainability within your project.

  • Developing components using the django-components library : Let's implement components that support better modularization and reusability using the django-components library.


Section (11) (Photolog Project) Developing Django-centric web services

"""You will gain experience in building an actual web service by combining various libraries of Django, implement various functions that can be applied in practice, and acquire full-stack web development skills centered on Django."""

We will develop a photolog web service centered on Django, and utilize the powerful functions that Django provides as a full-stack web framework rather than a simple API . Starting from project creation and initial settings, we will gradually complete the actual service from the ground up, while drawing out the synergy between Django and various libraries.

The main topics covered in this section are:

  • The ultimate synergy with Django and django-crispy-forms, htmx

  • Implementing multiple image uploads : Let's implement a user-friendly image upload environment by adding the ability to upload multiple images at once.


  • Image Optimization Using Pillow Library : In Python, you can easily perform various image processing using the Pillow library. It is also easy to install. We will cover optimization methods that reduce image size by up to 98% by resizing and converting images to JPEG using the Pillow library.

  • Tag support with the django-taggit library : Add tag functionality to effectively categorize and search content.

  • Develop various components : Develop components such as modal-form, image-overlay, and carousel to provide interactive user experiences.

  • Implementing comments by actively utilizing HTMX and modals : Develop comment functions efficiently and improve the user interface by actively utilizing HTMX and modals.

  • Implementing user following : By implementing a user-to-user follow function, we complete the photolog service with basic social functions.

Section (12) Deploying Django Services on a Linux Virtual Machine

"""You will learn the techniques to safely deploy Django services to a Linux environment and acquire the ability to build and manage an actual service operation environment on AWS Lightsail infrastructure."""

Since most web services are operated in a Linux environment , Linux-based deployment and server management skills are essential capabilities for web developers. In this section, you will learn the settings and architecture configurations for stable deployment of Django services in an actual operating environment.

Although this course focuses on AWS Lightsail, the setup and deployment methods you learn can be applied to other Linux server environments in almost the same way .

The main topics covered in this section are:

  • Setting up a local network : This covers how to connect to a development server from devices such as mobile phones during the development phase without deploying to an external server. This will help you learn how to test in a local network environment and easily check on various devices during development.

  • Service Architecture : Introduces the basic architecture of web service deployment and understands server configuration and role division.

  • Deploying Django Services on Ubuntu Linux Virtual Machines

    • Learn how to install the latest version of Python, 3.12, and set up your deployment environment.

    • Reverse proxying and serving static files with nginx: Learn how to effectively distribute web traffic based on web requests with nginx.

    • Error Log and Administrator Email Sending: Learn how to set up an administrator email so that administrators can quickly recognize service errors.

    • Error logging service Sentry: Integrates with error tracking service Sentry to improve service manageability through real-time monitoring.


  • Deployment using Amazon Lightsail virtual machines and databases: Build a stable deployment environment based on AWS.


Section (13) Creating a productive web API using django-rest-framework

"""You will gain a comprehensive understanding of the features of django-rest-framework and acquire the practical skills to build efficient and productive web APIs."""

A widely used library for developing web APIs in Django is django-rest-framework (hereinafter referred to as DRF). Learn how to develop highly productive web APIs using DRF. Just as Django provides various functions optimized for web page development , DRF systematically supports functions required for web API development, reducing repetition and effectively helping build web APIs.

The main topics covered in this section are:

  1. APIView : Understand the basic structure and operation of APIView, which is the core of API request processing.

  2. Mixin : A feature that utilizes class inheritance syntax, allowing you to combine multiple DRF APIViews to support various scenarios with code close to the configuration . Learn how to increase code reusability and easily add common functions.

  3. ModelViewSet : A comprehensive gift set of CRUD (create/query/edit/delete) API implementations, allowing you to freely combine and use the CRUD functions you need. We will look at the inheritance process and learn how to easily implement various functions with various inheritance combinations.

  4. Renderer : API servers need responses in JSON format as well as images, Excel files, PDFs, etc. Just as documents with the same content need to be in Excel, Word, Word, and Hangul formats depending on the situation. Learn how to make API responses in various formats with high reusability through DRF Renderer.

  5. Serializer : The role of Django Form is handled by the serializer. Learn how to efficiently handle data validation and conversion.

  6. Authentication and Authorization : Learn authentication and authorization, which teaches API security, and implement user access control.

  7. pytest Testing : Learn how to test APIs using pytest and verify that the API works as intended.

  8. Pagination : Data in a database table is not retrieved all at once. It is retrieved in page units by specifying a page size. Let’s look at the three pagination methods supported by DRF.


Section (14) Session Authentication for Web APIs

"""You will understand session authentication methods suitable for web APIs and gain practical skills to implement authentication efficiently."""

Many people think that JWT authentication should be used for web APIs, but JWT authentication has more disadvantages than advantages, so session authentication is a more stable and suitable choice in actual operating environments . Learn how to increase security and efficiency in API requests through session authentication provided by default in Django.

If you use session authentication, you don't need to implement functions such as login when developing a React SPA (Single Page Application). Use the functions already implemented in Django and focus on implementing your business .

The main topics covered in this section are:

  • Session Authentication vs. JWT Authentication : Compare the pros and cons of session authentication and JWT authentication to understand which authentication method is right for your web API.


  • Designing to leverage session authentication in web API requests : Learn design methods to securely handle web API requests from a React SPA (Single Page Application) by leveraging session authentication.

  • Django/Next.js Integration and Authentication Using Session Cookies : We will look at how to integrate Django and Next.js to utilize session authentication without JWT.

Section (15) Learn React and Create Django Template Components with React (Based on React v18)

"""Learn the core concepts of React and learn how to use them to implement Django template components that can be used in Django templates."""

React is simply a UI library , and using React does not necessarily mean that your front-end must be built as a Single Page Application.

React is a powerful front-end technology, but its development cost is high . And there are probably more than 80% of the service's functions that do not necessarily require React . Rather than using React for all the development of functions, if you apply React technology only to core functions (even core functions may not need React), and actively utilize Django-centric front-end technologies to make time to polish those core functions, you can make enough time and implement most functions . The biggest cost is time.

From this perspective, we designed this section to help backend developers understand React technology and use it appropriately only for the functions that require it.

  • Creating a React project using CRA and Parcel bundlers

  • Pure Functions and JSX : Learn the concept of pure functions, which are the core of React components, and how to create declarative UIs using JSX.


  • State, Attributes, and Event Handling : Learn how to manage state using state and attributes in React, and handle user interactions as events.

  • How to Write Component CSS : Learn how to add styles to your components using Modules and Sass.

  • Handling immutable objects easily using immer : Handling immutable objects is essential in React. Handling immutable objects is cumbersome with only basic JS functions. Learn how to handle immutable values easily using immer.


  • Fold pattern, reducers, and global state management : As React components take up a larger portion of the page, managing global state becomes essential. Learn about reducers as one way to efficiently handle global state management.

  • Web API request using Axios : You can send HTTP requests via the fetch API in the web basics, but let's look at how to make a web API request using the Axios library, which has various convenient functions enhanced.

  • Creating SPA with Router : In a Single Page Application, you inevitably need to show multiple screens depending on the request URL. Let’s learn how to show different React components depending on the request URL by utilizing the React Router library.

  • Creating Django Template Components with React : Since React is just a UI library, it can be used anywhere on a web page. Learn how to create React components that can be used in Django templates.

Section (16) Creating a Django/React Hybrid Service

"""By integrating the previously developed Django project and React application, we will implement a flexible and efficient web application while taking advantage of each other's strengths."""

Designing forms in React , managing field status, and handling error messages are tasks that require a lot of man-hours of development . If a complex form is required, it can be handled in React, but in most cases, utilizing Django's Form function can greatly reduce development man-hours.

In this section , you will learn how to implement modal forms in React by simply specifying an address, using Django forms depending on the situation, and learn how to maximize the harmony between Django and React.

Here are the main topics covered in each section:

  • To-do List CRA Application with API : Implement a to-do list management feature by combining Django's API and React application. This will help you understand the structure of how the backend and frontend are organically connected.

  • Implementing a ToDo modal form in a Django/React hybrid way

    • Implement modal forms by integrating React and Django forms. In particular, by completing the form by only specifying the Django form page address in React, you can maximize the productivity of Django forms while utilizing React's interactive UI.

Section (17) Cache API

"""Understand Django's various caching strategies and learn practical ways to use cache to optimize service performance."""

Learn how to use Django's cache API to reduce database load and increase service response speed . Cache is a great help in efficiently processing data requests, shortening response time and saving system resources.

However, cache is a "double-edged sword" , and if it is not properly managed, it can reduce the freshness of data and cause unexpected problems. It is time to understand the potential risks of cache while effectively utilizing it.

The main topics covered in this section are:

  • Leveraging the Caching Low-Level API : Understand the basic behavior of caching by using Django's low-level cache API.

  • Different caching backends (memory, memcached, redis): Compare different cache backends to find out their pros and cons.

  • Analyzing the logic that constitutes a caching key : Learn how to optimize the hit rate of your cache by analyzing the logic that constitutes a caching key.

  • Verifying cache with django-debug-toolbar : Learn how to verify internal caching behavior and debug problems with django-debug-toolbar.

  • How to increase cache hit rate by sorting query parameters with the same value but different order : Query parameters with the same value but different order are stored in different cache locations. Learn how to increase cache hit rate by sorting query parameters.

  • How to bulk delete caches using Redis and django-redis cache backend : Learn how to efficiently bulk delete caches with large amounts of data or that meet specific conditions using the Redis and django-redis libraries.

  • How to clear the template cache : Learn how to manually clear the template cache, so you can respond quickly when a cache refresh is required.

Section (18) Deploying Django/React Services on a Linux Virtual Machine

"""Learn the technology to reliably deploy a full-stack application combining Django and React to a Linux environment, and acquire overall deployment capabilities including security and domain settings required for actual service operation."""

Learn how to deploy a Django web service and a React SPA frontend together using AWS Lightsail infrastructure.

The main topics covered in this section are:

  • Separate environment variables for development/deployment : Learn how to manage environment variables appropriate for deployment by separating the settings required depending on the environment.

  • Easy and simple server deployment with deployment script : Learn how to deploy to servers easily and simply by writing a deployment script that automates server deployment tasks.

  • How to set up CRA deployment files in nginx : Learn how to deploy React applications reliably by setting up nginx to serve React files built with Create React APP (CRA).

  • Subdomain support for learning : A domain is essential for service operation. Even if you do not have a domain, we support a domain that can be used for learning purposes.

  • Link HTTPS certificates and domains : Strengthen security by applying HTTPS certificates and link them to domains to complete a production-level deployment environment.

Do you have any questions?

Q. Is this a lecture that non-majors can also take?

If you understand Python syntax such as functions/classes/decorators/generators, and have written dozens of lines of Python code, this is a lecture that you can follow. Of course, you will not understand it after listening to it once and practicing it. There is no one who understands a field they are new to right away. Don't be too upset. It is natural because you are learning an unfamiliar field. Efforts with a clear direction will not betray you. If you have any questions about Python/Django while learning, please leave a question at any time. I will think about it together. Let's grow 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 )

Moreover, with the release of Python 3.11, 3.12, and 3.13, Python is getting noticeably faster.

Q. Isn't Django expensive to learn, slow, and has many limitations?

Django is a mature framework that has been around for about 20 years since it was released in 2005. (Spring was released in 2003.) Django is a full-stack backend framework, and almost all the functions required for backend development are developed and being developed within Django.

Django is just a single Django that provides many functions. Having many functions does not mean slowness. Each function is managed organically by a single management entity and has the best synergy. FastAPI is powerful, but its functions are limited, and it is impossible to implement all the functions of a web service with just FastAPI. It requires the installation of numerous libraries with different management entities. If you install this and that, it is not uncommon for the size to grow larger than Django.

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?

Python/Django will help you save more time and achieve maximum productivity in teams with limited time and cost, so you can focus on your business.

Things to note before taking the class

Practice environment

  • Operating System and Version (OS)

    • This lecture covers setting up development environments for Windows and Mac.

    • Any environment where Python and Node can be installed is possible.


  • Tools used: PyCharm Professional (6-month coupon provided), Docker

    • We use Docker to quickly create PostgreSQL and MySQL databases. We do not cover Docker installation, but provide the commands and docker-compose.yml file required to create Docker containers. On computers where Docker cannot be installed, you can use the SQLite database (recommended) or download and install the PostgreSQL/MySQL installation files.

  • Deployment is done on an AWS (Amazon Web Services) Lightsail virtual machine.

    • To sign up for AWS, you need a credit card that allows overseas payments.

    • If you delete the resources immediately after practicing deployment, the AWS cost is expected to be in the range of a few hundred won.

    • If you have difficulty signing up for AWS, you can create an Ubuntu Linux virtual machine locally using VirtualBox or Parallels and proceed with the practice, but some of the content in the lecture may not work. If you have any questions about the part that does not work or is blocked, please leave a question and we will guide you.

Learning Materials

  • PDF lecture materials are provided for each lecture video.

  • If the practice code is long, a link to copy the source code is provided in the lecture notes below the lecture video.

  • Commit links for each lab are provided in the lecture notes below the lecture videos.

Note

  • The content of this lecture is copyrighted by the knowledge sharer. It is okay to share some of what you have learned on your blog for learning purposes (please cite the source), but sharing the full text or using it for commercial purposes is prohibited.


Recommended for
these people

Who is this course right for?

  • For those who want to start Python web service development from the ground up with a solid foundation.

  • For those who want to experience the essence of Django web development

  • For those who want to experience everything from backend/frontend to deployment in one course.

Need to know before starting?

  • Understanding basic Python syntax (functions, classes, decorators, type hinting, generators)

  • Understanding basic JavaScript syntax (functions, Prototype, this, etc.)

  • Running a Container with Docker

Hello
This is

2,972

Learners

142

Reviews

933

Answers

4.7

Rating

5

Courses

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

대외 활동

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

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

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

Curriculum

All

295 lectures ∙ (35hr 56min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

20 reviews

4.8

20 reviews

  • sunnnwo님의 프로필 이미지
    sunnnwo

    Reviews 7

    Average Rating 4.7

    Edited

    5

    10% enrolled

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

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

      Reviews 8

      Average Rating 4.1

      Edited

      5

      100% enrolled

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

      • 이진석
        Instructor

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

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

      Reviews 36

      Average Rating 5.0

      5

      11% enrolled

      좋은 강의 감사합니다.

      • 이진석
        Instructor

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

    • sykim1님의 프로필 이미지
      sykim1

      Reviews 1

      Average Rating 5.0

      5

      100% enrolled

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

        Reviews 5

        Average Rating 5.0

        5

        60% enrolled

        Limited time deal

        $165,000.00

        25%

        $169.40

        pyhub's other courses

        Check out other courses by the instructor!

        Similar courses

        Explore other courses in the same field!