
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Build your first Django app quickly with Python and Postgres, mastering admin, models, querysets, templates, forms, file uploads, and an employee management system, then deploy to the cloud.
Discover Django's history, architecture, and key principles as a high-level Python web framework for rapid development, emphasizing the DRY principle and plug-and-play apps, views, models, and templates.
Install python 2.7, set up postgresql via pgAdmin, and import the prebuilt employee management database to explore tables and relationships for a Django app.
Install and activate a Python virtual environment to isolate dependencies for your Django app, keeping global and local packages separate.
Install and verify Django in a virtual environment, create a project with django-admin and manage.py, and explore middleware, templates, and dependencies with pip and a requirements.txt.
Explore the Django project structure by examining manage.py, wsgi, and urls, focusing on settings.py and its secret key, debug mode, allowed hosts, installed apps, middleware, templates, and database configuration.
Configure Django to use a Postgres SQL database by updating settings, installing psycopg2, and applying migrations; then start the server and create a superuser for the Django admin.
Explore how Django models define database tables using a model-first approach, compare it with database-first, and examine model fields and model options to configure tables.
Apply the model first approach in a Django app by defining a model as the blueprint of the database, including fields and data types, with a feedback model for employees.
Refactor by moving the feedback model into its own Django app, then reverse-engineer the database with inspectdb and clean up models, keys, and relations before migrating.
Discover Django querysets by executing queries against models, creating records, and comparing behind-the-scenes relationships to understand how results are produced.
Explore Django querysets in action by using the Django shell to import models, build and filter querysets, customize string representations, and perform create, update, delete, and exception handling.
Introduction to Django admin covers registering models, CRUD on employee data, customizing display and validation, multi-field search, and custom actions; plus groups and read-only permissions for admin control.
Register django models with the admin site to auto generate a user interface for the EMS Postgres database, including the feedback model, and explore the admin panels.
Learn to customize Django admin listings by overriding the model admin and form classes, adding display fields, enabling list editable, and configuring search fields to streamline feedback management.
Add and wire custom django admin actions to mark selected feedback as read, display a success message, and show how to refactor into forms and utilities for cleaner code.
Create a custom validation function to validate allowed email domains, attach it to the email field's validators, and raise a ValidationError when the domain is not whitelisted.
Master Django custom form validation at the form level by using clean methods to perform single-field and multi-field checks, including employee number lookups and field-specific errors.
Learn to make the Django admin more responsive by installing django-flat-responsive for older versions and using built-in options in 1.9+, then apply media queries to achieve a mobile-friendly admin.
Override the Django admin header, site title, and index title to customize the admin UI, using either a custom admin type or the default approach.
Explore how Django maps urls to views using regular expressions, function views, class based views, and include patterns.
Demonstrate function-based views in Django by creating an index view that renders a hello world template and a profile form with get and post handling, validation, and redirects.
Explore the fundamentals of Python functions, including positional and keyword arguments, *args and **kwargs, default values, and variable length arguments, with unpacking and practical examples.
Use the parallax material design template to quickly style a Django front end, load static files, and extend base templates for a clean MVP with directory and profile views.
Install and configure a third-party image field to upload and display employee thumbnails in Django admin, using local storage, custom upload paths, and a placeholder when missing.
Leverage Heroku, platform as a service, to deploy your Django app quickly with a few commands for a minimum viable product while noting limited control and potential dyno costs.
Sign up for a free Heroku account and install the command line interface (CLI) formerly toolbelt. Prepare your deployment environment and ready your Django environment for production deployment.
Tinkering with code for the first time can be a bit intimidating for some, with so many frameworks and languages to choose from, settling on the perfect fit is sometimes a challenge. Fear not this does not have to be the case for you, as by starting off with learning Django & Python a highly versatile and readable language you spend less time fiddling with mandate tasks and more on actually getting your application up and running and building a robust system
Building your first Django App in Minutes course is packed with helpful resources that will take you from complete beginner to intermediate Django development within a short span of time. You will acquire the skills needed to make your awesome ideas come to life.
Here's what you'll get
Why is it worth learning Django?
Here's what Django brings to the table
What makes this course different than other courses you might find?
If you are signing up for this course, then you are automatically enrolled into a “life time course series”. What this means the course will continuously be updated with the latest in Django as well as new modules and concepts will be added to help you boost up your Django skills. We will continue to enhance the theme of EMS and expand on the app. If that's not enough, I'll be available to answer any questions you might have in the course's forums.