
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Begin with a python refresher, then build three Django websites—word counter, portfolio, product hunt clone—learning models, postgres, static and media, authentication, git, and Django 2.0 updates.
Get up to speed on Python with a step-by-step refresher, starting from installing Python and building a solid foundation to move forward with Django.
Open the terminal or command prompt on macOS, Linux, or Windows, verify the Python 3 version, and install Python 3 if needed, then confirm with python --version or python3 --version.
Master basic Python by creating and saving a script, declaring variables like age and name, and using print and string formatting with .format to display output in the terminal.
Learn how to use if statements in Python to make decisions with age checks and comparisons, and discover comments with # and triple-quoted strings for multiline notes.
Learn how to define functions with def, pass parameters, use default values, and return results, illustrated by printing greetings and formatting strings.
Learn how Python lists, created with square brackets, are ordered collections printed, modified with insert, indexing, delete, and update, can hold mixed types and report length with len.
Explore Python loops by iterating through a list of dog names with for loops, then use range for counted iterations and finally implement a while loop to control a condition.
Learn how to create and manipulate Python dictionaries using curly braces, with key and value pairs, indexing to look up values, and update or delete entries, noting dictionaries are unordered.
Learn how to define Python classes, create methods and __init__ methods, and instantiate objects using a dog example, covering self, instance variables, and class variables.
Finish the Python refresher and learn you can use Python in Django without being an expert, focusing on variables, strings, and functions to move into Django.
Build your first word counter website and learn how Django routes a homepage request. Install Django, create a new project, and use the Django cheat sheet for quick reference.
Install Django with Python 3 via pip, pin a specific version (2.0.2 or latest), then create your first Django project named word count using django-admin startproject.
Start a Django development server with manage.py runserver, access it at 127.0.0.1:8000, and verify the project in the browser, while using Google for quick coding guidance.
Learn how Django routes urls to views, create a home page with an http response, and test dynamic paths like admin and eggs. Auto-reload on changes and templates come next.
Learn to use Django templates to separate HTML from views, set up a top-level templates folder, configure settings, and render home.html with a context dictionary and template variables.
Learn to build a Django home page form with a text area, submit button, and a count page that tallies words via URL routing and views.
Count words, analyze text, and display sorted word frequencies in a Django web app, demonstrating how URL parameters and the request object drive data flow.
Learn to create a taggs-driven navigation by adding a start again link back to the home page, then perform a two-step process to an about page with basic site information.
Design and wire an about page in Django by defining a URL, creating a views function, rendering about.html, and linking it from the home page.
Master Django basics by installing Django, creating a project, and tracing the flow from URL request to views, including handling form data and simple counting, plus an intro to Git.
Master git fundamentals and pushing existing code to a server, as you ramp up with Django on your second website and deepen your deployment workflow.
Create a portfolio site to showcase your work with a name, photo, description, and resume download, while learning virtual environments, postgresql databases, models, admin, static files, image uploads, and bootstrap.
Sketch your website on paper to map navigation and pages, then build a home page with a navigation bar, portfolio boxes, blog list, and a copyright year that updates automatically.
Create and manage a Python virtual environment for a Django project, activate it across platforms, install Django inside the venv, and note that git ignore will be covered later.
create a gitignore to exclude databases, pycache, and secrets from a Django project; use gitignore.io for a Django template and ensure untracked files stay local when running the dev server.
Learn how Django projects are composed of apps, create blog and jobs apps, set up app structure with migrations, models, views, and urls, and commit changes to git.
Manage job records in the Django admin by registering the model, creating a super user, and editing entries, with media settings ensuring uploaded images display.
Replace SQLite with PostgreSQL to scale databases in Django projects; install PostgreSQL locally, create a database, configure Django to use PostgreSQL, run migrations, and create a superuser.
Create a blog model with title, pub date, body, and image, add the blog app, run migrations, and register it in the admin to enable blog posts in Django.
Learn how to craft the home page by wiring the jobs app, configuring the URL pattern, and rendering a home.html template within app templates, with bootstrap coming next.
Explore Bootstrap basics, using a content delivery network to create a responsive navigation bar, a jumbotron, and html, css, and JavaScript; compare front end and Django back end roles.
Fetch all jobs from the database in Django and pass them to the homepage. Render each job's image and summary in the template.
Create a Django blog detail view that displays full posts by ID, with a body summary and a pretty pub date. Improve admin display and 404 handling.
Learn to work with Django static files by creating a static folder, configuring the static url and route, using the static tag in templates, and running collectstatic to gather assets.
Polish the site by refining the navigation links to home, Twitter, and blog, and enhance the blog detail view with a title and publish date for a polished experience.
Explore virtual environments, apps, models, views, and urls, and connect databases to admins. Learn about databases like the default sqlite3 and postgresql, media and static files, and bootstrap styling.
Launch your Django project online by uploading to a virtual private server, configuring deployment, and connecting a domain to showcase your portfolio.
Host your Django project on a virtual private server using Digital Ocean. Connect via SSH, create a droplet, and configure the deployment environment.
Harden a Django server by following an initial setup guide, create a Django deploy user with sudo privileges, disable root login, test ssh access, and configure ufw.
Set up PostgreSQL database and a secure user with password, avoid storing credentials in git, install and configure virtual environment, and activate it to deploy your Django project on server.
Push your Django project to GitHub, clone on the server, and keep local and server settings in sync using a local_settings.py to protect secrets; run migrations and install requirements.
Set up a Django app, create a super user for admin access, and collect static files while testing on port 8000. Configure gunicorn to serve the project and automate deployment.
Learn how nginx routes traffic to the unicorn socket for a Django app, and manage static and media files, production settings, and service restarts.
Map a domain name to your django site by registering with Google Domains, enabling private registration, and configuring A records to point to your server IP, with proper allowed hosts.
Publish your Django and Python web project live with a focus on virtual private servers, security, local settings, unicorn engine, and domain setup for instant production-ready updates.
Learn to build a Product Hunt clone in Django with a focus on authentication—creating user accounts, log in/out, and user-connected models—across Windows and Mac environments.
Learn wire framing and sketching to map a product hunt style app, including the home and detail pages, and user sign up, login, and upvote interactions.
Extend templates to create a site-wide base.html and a reusable layout, then build the products and accounts apps with a homepage that renders from the shared base.
Refine the base Django template by converting the home page to a clean container layout, light theme, and a static logo, using Django's static file workflow.
Build a Django authentication flow enabling sign up, log in, and log out using a dedicated accounts app, URL routing, and sign-up form handling with user creation and redirects.
Implement login and logout in Django by editing the sign-up flow into a login form, authenticating users, using post requests, and adding a secure, hidden logout form with CSRF.
Create a Django products model with title, url, pub date, votes total, image, icon, and body; link hunter via a foreign key with cascade delete, migrate, and admin registration.
Enable users to create products via a login-secured create page, validate fields, auto-set pub date, assign creator, initialize votes, save the product, and redirect home.
Add a login-protected create button to the navigation. Convert it to an iconic plus using iconic icons, integrate static files with collectstatic, and link to the create page.
Build a Django product detail page from routing to rendering, including an icon, linked title, large image, upvote button, and metadata such as hunted by, date, and body description.
Build a dynamic home page that lists products, enable upvotes via a hidden post form with CSRF protection, require login, and link each item to its detail view.
Improve user experience by redirecting unauthenticated users to sign-up when upvoting, rename the site to Product Hunt, and add clock and calendar icons along with spacing tweaks.
Celebrate finishing this Django bootcamp by building a site with database, views, models, and authentication, and explore what's new in Django 2.0 through a bonus lecture.
design a vote model with user and product foreign keys, migrate the database, check for existing votes, and count votes per product by querying vote objects.
Discover what's new in this quick section for those with experience, featuring a highlights presentation and a follow-up lecture on moving a Jenga one project to Jianguo two.
Discover the top Django 2 features, including Python 3 support, a new start page, explicit on delete behavior for foreign keys, regex-free urls, a responsive admin, and simplified auth checks.
Learn how to migrate a Django 1 project to Django 2.0 using virtual environments, updating on_delete, switching from url regex to path, and validating a Reddit clone's functionality.
Express gratitude for joining the course and invite ongoing engagement, as this Django 2.2 and Python bootcamp looks ahead to future versions and keeps you coding.
Have you ever wanted to create a Web application but didn't know where to start? Have you previously tried to learn Django but got fed up with incomplete YouTube videos and poorly written tutorials? Or are you looking to move your code from Django 1 to Django 2?
THEN THIS IS THE COURSE FOR YOU!
In my Django course, I will walk you through the Django web framework from beginning to end! I'm a self-taught programmer so I know what it feels like to start from scratch. I care about your learning, but even more importantly... I care about you!
What is Django?
Django is an open-source web framework that is written in Python. It was created about twelve years ago, but in April 2019 Django 2.2 was released with a whole new set of features and capabilities!
Django is an amazing framework for web developers because it provides the infrastructure required for database-driven websites that have user authentication, content administration, contact forms, file uploads, and more. Instead of creating all of these features from scratch, you can use the Django framework and utilize these components that are already built, and focus your time on developing your web app instead.
If you're going to be working with Python, especially for web applications or web design, you'll want to learn the Django framework. It will save you a ton of time!
Contents and Overview
I believe we learn best by doing. So, throughout this course you'll be presented with coding quizzes and challenges in order for you to test what you just learned. This format will allow you to actually learn Django and not just follow along like a robot ;)
We will use Python in this course, so if you have never used Python before, we will start with a python refresher to get you up to speed (no other python experience required).
We will then dive into making three complete websites:
1 - Word-Counting Website: A simple website to count the most frequently used words in a piece of text. You will learn how to:
Install Django
Create a new project
Work with Django's URL routing
Submit and handle HTML form data
2 - Personal Portfolio: Create your own portfolio to show to potential employers showing off your resume, previous projects, and a fully functional blog. You will learn how to:
Add apps to your project
Work with databases including SQLite and Postgres
Access the admin panel
Create super users
Create virtual environments
Make a responsive website with Bootstrap 4
Work with static and media files
3 - Product Hunt Clone: Make a simplified version of the awesome website to share new tech products. You will learn how to:
Work with the authentication system (sign up, login, logout)
Reuse templates
Create model relationships
Add icons via Iconic
I will also walk you through Git, which is an awesome tool for developers that allows you to create multiple versions of your code. I'll explain why this is useful and help you understand why you should use it.
Additionally, I will show you how to take the projects that you made in this course and publish them live on the web through a Virtual Private Server. Like I said, I will take you from the very beginning to the very end!
Course material is regularly refreshed to include all of the newest updates and information, and since you’re granted lifetime access upon registering, you can rely on this course to keep your Django skills on the cutting edge. Additionally, I have made this course downloadable, so you can work through the class offline, making it as convenient as possible for you! Most instructors won't allow this, but I want you to be able to enjoy this course in whichever way is best for you :)
Don't waste your time scouring the internet and trying to piece together how to learn Django on your own. Invest in yourself, and allow me to teach you Django while having fun.
Don't take my word for it. See what my other students are saying!
"Amazing course to get into Django and web development! Nick is really engaging and enthusiastic and a joy to learn from!! He explains concepts clearly and teaches in ways that allow the student to easily recall the information." - Evv Erb
"I now work as a developer creating internal projects for our support team. Thanks!" - Johnathan
"Truly understands the concept of starting from the beginning. Great teacher and presenter." - Earl McAndrew
"I really loved the course. By going through the course, I actually made my own website and deployed it on a server." - Mrinal Shrivastava
"After buying 3 courses about django in Udemy. This is the only one I'm picking something up. Recommended." - Ruben
"Amazing teacher, very good and clear explanations very nice and helpful real life examples and projects" - Itay Galea
"Nick really goes the extra mile to ensuring a fantastic learning experience from beginning to end. I would recommend this course to anyone looking to get their python apps online quick and easy. You just became my favorite instructor :)" - Nur Roberts
Feel free to take a free preview of this course to see if it's a good fit for you. I am so confident that you will love my course, that I even offer a 100% 30-day money-back guarantee. You have nothing to lose, so come join me and let's get started!