
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.
Explore how pip and virtual environments manage dependencies, install packages from the Python package index, isolate project requirements, and understand site-packages in 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.
Learn to use pip commands to install packages with optional version, toggle and activate virtual environments, run pip freeze to generate a requirements file, and share dependencies via a repository.
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.
Manage a Postgres-backed Django app with makemigrations and migrate, inspect initial migrations, and adjust models with the auto generated primary key and safe defaults to audit and roll back changes.
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.
Learn to fake migrations in a database-first Django workflow by applying initial migrations with migrate --fake, verify entries in migrations and content types tables, and generate models from the database.
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.
Learn to customize Django admin forms by overriding fields like comments to a textarea, using widgets and attributes, and toggling read-only and add/edit forms through a get_form override.
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.
Understand why validation protects data integrity and security, prevents sql injection and other attacks, and how to use parameterised queries and Django's built-in validation to mitigate threats.
Explore how to use Django's built-in validators, including email and min/max length, and add custom rules at both form and model levels, with migrations to apply changes.
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.
Develop custom Django list filters, including gender and department filters, by extending simple list filter and lookups; integrate salary inlines to manage multiple salary entries for each employee.
Create a test Django user, make them staff, grant add/change/delete permissions, and enable read-only views with the admin view permissions app, organizing access with groups.
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.
build a function based view to fetch an employee by primary key, define it in views.py, import HttpResponse, and return a string or html for testing on a local server.
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 class based views and generic views in django, implementing get and post methods, using as_view, and leveraging template, list, detail, and create views to reduce boilerplate.
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.
Explore how Django templates render dynamic content with static layout, using variables, tags, and filters, configure template engines and CSRF protection, and implement conditions, loops, sorting, and localization in templates.
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.
Configure Django for production by disabling debug, securing the secret key with environment variables, and serving static files with WhiteNoise for deployment on Heroku.
Initialize a git repository, sign in to Heroku, create your app, push code, and configure a database. Import local data from Dropbox and verify the app runs on Heroku.
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.