Python Django - The Practical Guide
Learn how to build web applications and websites with Python and the Django framework
Start coursePython is the most popular programming language of the world - it's versatile, easy to learn and very powerful!
We already got a Python course which you can take if you want to learn Python.
But one of the primary things you can build with Python is a website! You can use Python for web development.
And to make that easier, you would typically use a framework like Django - simply because that allows you to focus on your core business logic and you don't need to re-invent the wheel and implement all the nitty-gritty technical details from scratch.
And this course is about Django - the most popular Python web development framework out there!
Django covers all aspects of web development - from handling requests and responses, over rendering dynamic HTML pages with templates, all the way up to making database access and data management easy. It's all baked in and it's all covered in great detail in this course!
This course teaches Django from the ground up - you don't need to know anything about it to get started. Basic Python and web development knowledge is all you need.
We'll start at the absolute basics and understand how to create Django project, how to run them and how to add features - step by step.
In detail, this course covers:
- Installing Django
- Creating and understanding Django projects
- Understanding URLs, views, requests and responses
- Working with templates and static files like CSS and images
- Working with data and models
- Connecting data with relationships (one-to-many, one-to-one, many-to-many)
- Querying data with Django's powerful model solution
- Adding administration panels to your projects
- Handling user input with forms - manually and with Django's built-in form support
- Advanced features like class-based views (and when to use them)
- Dealing with file uploads and how to serve uploaded files
- Working with sessions
- In-depth deployment instructions and examples
- Different ways of deploying and serving static files and user uploads
- And much more!
All those concepts are taught in great depth and backed up by a complete example course project where we build a "Blog website" from the ground up.
Therefore, you'll learn all the important concepts and the theory and you're also going to be able to see it applied to a real project.
Hence, once you completed the course, you'll have a very solid understanding of Django and you'll be able to dive into your own Django projects!
Course content
Section 1Getting Started
- Welcome to the Course!2:05
- What is Django?4:58
- The Course Prerequisites1:54
- What's Inside the Course?3:14
- Getting the Most out of the Course3:05
Section 2Course Setup
- Module IntroductionPremium1:05
- Installing Python & DjangoPremium6:25
- Creating a Django ProjectPremium2:33
- Installing an IDEPremium5:54
- Analyzing the Created ProjectPremium4:48
- Starting a Development ServerPremium5:05
- Django AppsPremium8:19
- Analyzing the Created ProjectPremium2:27
- More Advanced Setup StepsPremium1:00
- Useful Resources & LinksPremium1:00
Section 3URLs & Views
- Module IntroductionPremium2:45
- Creating a New ProjectPremium5:34
- What are URLs & Views?Premium5:42
- Creating a First View & URLPremium13:27
- Adding More Views & URLsPremium3:11
- Dynamic Path Segments & Captured ValuesPremium9:35
- Path ConvertersPremium5:16
- Adding More Dynamic View LogicPremium5:20
- RedirectsPremium8:48
- The Reverse Function & Named URLsPremium10:31
- Returning HTMLPremium5:48
- Practicing URLs, Views & Dynamic View LogicPremium9:37
- SummaryPremium4:43
- Useful Resources & LinksPremium1:00
Section 4Templates & Static Files
- Module IntroductionPremium3:55
- Adding & Registering TemplatesPremium14:55
- Rendering TemplatesPremium4:16
- Template Language & Variable InterpolationPremium5:38
- Exercise SolutionPremium1:56
- FiltersPremium4:19
- The Django Visual Studio Code ExtensionPremium2:29
- Tags & the "for" TagPremium8:02
- The URL Tag for Dynamic URLsPremium6:10
- The "if" Tag for Conditional ContentPremium5:16
- Template InheritancePremium9:38
- Exercise SolutionPremium1:31
- Including Partial Template SnippetsPremium9:45
- More on the Django Template Language (DTL)Premium1:00
- 404 TemplatesPremium7:08
- Adding Static FilesPremium9:13
- Adding Global Static FilesPremium6:24
- Adding CSS StylingPremium15:55
- Building Static URLs DynamicallyPremium1:00
- SummaryPremium4:48
- Useful Resources & LinksPremium1:00
Section 5Course Project: Building a Blog - The Basics
- Module IntroductionPremium1:13
- Setting Up the Starting ProjectPremium3:45
- Planning the ProjectPremium4:26
- Adding URLs & ViewsPremium11:16
- Adding First TemplatesPremium8:10
- Template Content & Static FilesPremium16:11
- Adding Images as Static FilesPremium2:58
- Adding the "All Posts" Page & StylePremium10:32
- Linking the PagesPremium4:16
- Adding the "Single Post" PagePremium5:39
- Adding Dummy Data to the "Views" FilePremium4:09
- Special Template Features & SyntaxPremium11:26
- Adding a Single Post PagePremium8:44
- Adding a 404 PagePremium1:57
- Useful Resources & LinksPremium1:00
Section 6Data & Models
- Module IntroductionPremium2:55
- Different Kinds of DataPremium6:56
- Understanding Database OptionsPremium6:15
- Understanding SQLPremium6:38
- Django ModelsPremium1:02
- Creating a Django Model with FieldsPremium9:44
- MigrationsPremium6:58
- Inserting DataPremium4:35
- Getting all EntriesPremium1:52
- Updating Models & MigrationsPremium12:17
- Updating DataPremium5:50
- Deleting DataPremium1:17
- Create Instead of SavePremium3:07
- Querying & Filtering DataPremium7:43
- "or" ConditionsPremium4:02
- Query PerformancePremium5:43
- Bulk OperationsPremium1:00
- Preparing TemplatesPremium7:10
- Rendering Queried Data in the TemplatePremium2:59
- Redering the Details PagePremium9:38
- Model URLsPremium4:21
- Adding a Slugfield & Overwriting SavePremium9:04
- Using the Slug & Updating Field OptionsPremium6:05
- Aggregation & OrderingPremium7:13
- SummaryPremium3:29
- Useful Resources & LinksPremium1:00
Section 7Admin
- Module IntroductionPremium2:14
- Logging Data Into the Admin PanelPremium5:28
- Adding Models to the Admin AreaPremium3:32
- Configuring Model FieldsPremium3:03
- Configuring the Admin SettingsPremium6:28
- More Config OptionsPremium5:04
- Useful Resources & LinksPremium1:00
Section 8Relationships
- Module IntroductionPremium1:52
- Understanding Relationship TypesPremium3:04
- Adding a one-to-many Relation & MigrationsPremium9:02
- Working with Relations in Python CodePremium6:29
- Cross Model QueriesPremium5:04
- Managing Relations in AdminPremium5:06
- Adding a one-to-one RelationPremium6:42
- One-to-one Python CodePremium4:54
- One-to-one & Admin ConfigPremium5:23
- Setting-up many-to-manyPremium4:44
- Using many-to-many in PythonPremium5:18
- Many-to-many in AdminPremium2:20
- SummaryPremium2:37
- Useful Resources & LinksPremium1:00
Section 9Course Project - Building a Blog: Data & Models
- Module IntroductionPremium1:57
- Planning the Data ModelsPremium4:03
- Adding a Post ModelPremium7:36
- Author Model & one-to-manyPremium3:06
- Tag Model many-to-manyPremium1:22
- Registering Models for AdminPremium1:15
- Migrations & Admin LoginPremium3:13
- Adding Data via AdminPremium3:02
- Configuring the Admin PanelPremium5:36
- Fetching Posts for Starting PagePremium6:37
- All Post & Single Post PagesPremium4:50
- Using Author & Tags DataPremium8:34
- SummaryPremium1:40
- Useful Resources & LinksPremium1:00
Section 10Forms
- Module IntroductionPremium1:53
- Starting SetupPremium4:52
- Adding a Dummy FormPremium4:40
- Get & Post RequestsPremium9:59
- CSRF ProtectionPremium5:52
- Handling Form Submission & Extracting DataPremium9:50
- Manual Form Validation & the Problems with "that"Premium6:09
- Using the Django Form ClassPremium11:04
- Validation with Django FormsPremium4:12
- Customizing the Form ControlsPremium5:00
- Customizing the Rendered HTMLPremium5:05
- Adding StylingPremium9:08
- Adding More Form ControlsPremium7:37
- Storing Form Data in a DatabasePremium8:37
- Introducing ModelformsPremium6:39
- Configuring the ModelformPremium3:47
- Saving Data with a ModelformPremium4:28
- Class Based ViewsPremium8:41
- SummaryPremium5:53
- Useful Resources & LinksPremium1:00
Section 11Class Views
- Module IntroductionPremium1:07
- Adding TemplatesPremium4:21
- TemplateViewPremium7:56
- Using the TemplateViewPremium5:03
- Showing a Detail TemplatePremium5:06
- The ListViewPremium6:55
- DetailViewPremium3:48
- When to Use Which ViewPremium2:22
- FormViewPremium6:42
- CreateViewPremium4:47
- Useful Resources & LinksPremium1:00
Section 12File Uploads
- Module IntroductionPremium1:21
- Starting SetupPremium1:24
- Making the File Upload WorkPremium7:30
- Storing Uploaded Files Naive ApproachPremium4:39
- Adding a Form with a FilefieldPremium4:38
- Using Models for File StoragePremium8:44
- Using an ImagefieldPremium2:19
- Using a CreateViewPremium2:34
- Working with the File FieldPremium5:10
- Serving Uploaded FilesPremium6:50
- SummaryPremium1:53
- Useful Resources & LinksPremium1:00
Section 13Sessions
- Module IntroductionPremium0:38
- Problem DescriptionPremium2:01
- What are Sessions?Premium3:41
- Enabling & Configuring SessionsPremium2:15
- Adding a New ViewPremium4:31
- Storing Data in SessionsPremium4:03
- Which Kind of Data Should be StoredPremium2:33
- Using Session DataPremium5:33
- Safely Accessing Session DataPremium1:12
- SummaryPremium1:32
- Useful Resources & LinksPremium1:00
Section 14Course Project: Building a Blog - Forms, Files & Sessions
- Module IntroductionPremium2:05
- Adding an Imagefield to the Post ModelPremium6:31
- Serving Uploaded FilesPremium6:23
- Converting Views to Class BasedPremium14:03
- Adding a Comment ModelPremium5:15
- Adding a Comment FormPremium6:01
- Styling the Comment FormPremium7:15
- Handling Comment Form SubmissionPremium14:06
- Comment Form Validation StylesPremium9:39
- Outputting CommentsPremium5:03
- Styling the CommentsPremium3:13
- Comment AdminPremium3:44
- Read Later Starting SetupPremium7:09
- Managing Read Later via SessionPremium13:52
- Read Later Page & StylingPremium6:30
- Finishing the Read Later FeaturePremium6:21
- Useful Resources & LinksPremium1:00
Section 15Deployment
- Module IntroductionPremium1:29
- Deployment ConsiderationsPremium5:00
- Which DatabasePremium3:52
- Django & Web ServersPremium4:33
- Serving Static FilesPremium5:43
- Choosing a Hosting ProviderPremium2:42
- Getting Started & Revisiting SettingsPremium7:00
- Collecting Static FilesPremium7:35
- Serving Static FilesPremium1:52
- A Note About MigrationsPremium1:13
- Locking in DependenciesPremium5:48
- Using Environment VariablesPremium5:03
- Deploying with Elastic BeanstalkPremium10:42
- SSL & Custom DomainsPremium2:57
- Connecting PostgreSQLPremium18:58
- Serving Static Files SeparatelyPremium8:51
- Serving Static Files via S3Premium17:38
- Moving File Uploads to S3Premium8:26
- SummaryPremium1:28
- Useful Resources & LinksPremium1:00
Course instructor
Maximilian Schwarzmüller
As a self-taught professional I really know the hard parts and the difficult topics when learning new or improving on already-known languages. This background and experience enable me to focus on the most relevant key concepts and topics. My track record of many 5-star rated courses, more than 1,000,000 students worldwide as well as a successful YouTube channel is the best proof for that.
The most rewarding experience for me is to see how people find new, better jobs, build awesome web applications, work on amazing projects or simply enjoy their hobby with the help of my content. That's why, together with Manuel Lorenz, I founded Academind to offer the best possible learning experience and to share the pleasure of learning with our students.