Django is a high-level Python-based framework that encourages rapid development and provides a clean, sensible design. Application development with Django can be summarized in these words: Easy Creation: Scalable Application.
The primary goal of Django is to ease the creation of complex and database-driven websites. Django supports the principle of not repeating yourself by providing support for reusability and pluggability. Some of the well-known companies using Django include Public Broadcasting Service (PBS), Instagram, Mozilla, and so on. If you are a web developer knowing basics of Django and want to learn advanced features of Django, then this Learning Path is for you.
In this course, you will have an in-depth knowledge regarding various advanced features used by Django such as using class-based views, creation of custom middlewares, and templates. You will also get acquainted with some features like creating APIs and caching. You will also get a clear understanding of the topics with a lot of examples and practice. Finally you will gain knowledge of how Django projects are made by creating Django projects.
By the end of this Learning Path, you will be able to create advanced Django websites with the help of illustrative examples and practice.
About the Author:
For this course, we have combined the best works of this esteemed author:
Antonio Mele holds an MSc in Computer Science. He has been developing Django projects since 2006 and leads the django Spanish Django community. He has founded Zenx IT, a technology company that creates web applications for clients of several industries. Antonio has also worked as a CTO for several technology-based start-ups. His father inspired his passion for computers and programming.
Matthew Nuzum has been developing web applications since 1999 and worked for several start-ups including Canonical, makers of Ubuntu, as well as Fortune 500 companies. He has a passion for helping others learn new technologies and has written numerous tutorials and help documents as well as running a web-focused user group based in his hometown of Des Moines.
Kevin Veroneau is a very active Python and Django developer who has worked for many start-ups, has an active Python blog, and has worked on a magnitude of Python projects over the years.
René Fleschenberg is a web developer/sysadmin hybrid with a focus on back-end development in Python and Django. He has been working with Django for about 5 years and has built a variety of Django-based websites. He co-maintains an open source Django-based e-commerce solution.
Learn to install Django for local development.
Learn to build basic steps to complete blog site.
Define the initial data models for our blog.
Learn to create a simple administration site to manage blog posts.
Learn how to retrieve information from the database and interact with it.
We learn to create our application views and then we will define an URL pattern for each view
The ability to add templates to display posts in a user-friendly way.
Learn to import the Django paginator classes and modify the post_list view.
Define your views as class methods and provide base view classes for this.
Our objective in this video is to allow users to share posts by sending them by e-mail. To achieve this our video will help us to create forms and handle them in views.
In this video we will send emails with django and render forms in templates
In this video we will build the base for creating a comment system. For that we will create the comments and the functionality to manage the comments for a post
This video is the continuation of the previous one. Here we will cover how to Add comments to the post detail template.
Ability to create a way to tag our posts
Learn to build a functionality to display similar posts by the number of tags that the user share
The ability to create a template of tags and filters.
Learn to generate sitemaps for your site.
Learn to create sitemaps using the site's framework.
The ability to perform case-insensitive lookups using the icontains filter.
Learn to create a social application that will allow users to share images they find on the Internet.
Learn to build authentication framework that can handle user authentication, sessions, permissions, and user groups.
The ability to change users passwords.
Learn to build a view to allow visitors to create a user account.
Learn to build an authentication through backend by using different sources.
The ability to add social authentication to your site using services such as Facebook, Twitter, or Google.
Learn to allow users to bookmark and share images they find in other websites and share them in our site.
Learn to allow users to bookmark images from external websites.
The ability to create a simple detail view for displaying an image that has been saved into our site.
Learn to display the original image in the detail page.
Generate AJAX actions to our application.
The ability to restrict our AJAX views to allow only requests generated via AJAX.
The ability to use AJAX pagination to build infinite scroll functionality.
Learn to build a follower system into our project which users will be able to follow each other and track what other users share on the platform.
Learn to build an activity stream application so that every user can see recent interactions of users he follows.
Learn to save the actions performed by users on the website.
Learn to denormalize data from our Image model and use Django signals to keep the data updated.
Learn to denormalize data from our Image model and use Django signals to keep the data updated
Learn how Redis can be used for building new functionality into our project.
In this video We are going to create a ranking of the most viewed images in our platform
This video will enable you to browse through a product catalog and add products to a shopping cart. Finally, you will be able to check out the cart and place an order.
After building the product catalog, the next step is to create a shopping cart that will allow users to select the products that they want to purchase. So, What are we waiting for? Let's do it!
Now that we have a Cart class to manage the cart, we need to create the views to add, update, or remove items from it. We need to create these views. So, let's see how to do it!
This video will let you create a context processor which will enhance the efficiency of your shopping cart and give a better user interaction.
When a shopping cart is checked out, you need to save an order into the database. Orders will contain information about customers and the products they are buying. For this, you need to register customer orders. This video will show you how to achieve this.
In many situations you might want to return a response to the user as quickly as possible and let the server execute some process asynchronously. Using Celery, you can create asynchronous tasks easily, let them be executed by workers as soon as possible and schedule them to run at a specific time. Let's do it right now!
Learn to integrate PayPal, which is one of the most popular payment gateways.
Learn to get a notification which is instantly sent to your server when the gateway processes a payment.
Learn to customize the administration site to be able to export orders to CSV files.
Learn to customize the administration site beyond what is possible through configuration of ModelAdmin, creation of admin actions, and overriding admin templates.
Learn to extend an admin template which you need to know its structure and identify existing blocks.
Learn to create a model to store the coupon code, a valid time frame, and the discount to apply.
Learn to mark strings for translation both in Python code and in your templates.
Learn to translate literals in your Python code.
Learn to add template tag to translate string in order to use the translation template tags.
The ability to edit translations using the same interface as the Django administration site.
Learn to provide search engines with URLs that will rank better for each language.
The ability to add a language selector to our site.
Learn to provide a solution for translating models out of the box.
Generate a separate database table for each model that contains translations.
Learn to create a simple yet powerful recommendation engine that suggests products that are usually bought together.
Learn to build a flexible Content Management System (CMS) that allows instructors to create courses and manage their contents.
Learn to build e-Learning platform which will offer courses in various subjects.
to create a Content model that represents the module's contents.
The ability to create your own model fields to store custom data or alter the behavior of existing fields.
Learn to build a content management system (CMS) which will allow instructors to create courses and manage their content.
The ability to create a group for instructor users and assign permissions to create, update, and delete courses.
Learn to work with multiple forms on the same page.
Learn to create a view that handles creating or updating objects of any content model.
Learn to display all modules for a course and list contents for a specific module.
Learn to launch an AJAX to store the new module order.
Learnt to list all available courses, optionally filtered by subject.
Learn to create a new application to add student details.
Learn to display the courses the students are enrolled in.
The ability to use cache framework in terms of processing than serving a static website
The ability to perform the cache template fragments to access the database.
Learn to create an interface for other services to interact with your web application.
The ability to identify the user performing the request.
Generic class-based views provide a lot of functionality. Let's take a look at how you can easily extend them to create your own custom solutions.
The built–in, generic class-based views are actually made up of many reusable mixins. Take a look at how you can use the same technique to add your own behaviors into your class-based views.
You don't have to use generic class-based views. If you plan to override much of the built-in behavior or just don't need it, then you can start out with a simpler class, such as view.
You can create a single class-based view that can handle all of the operations for a set of data. These are sometimes called switchboard classes, and they can help make your code easier to maintain.
Code that is used in many views can be moved into middleware, allowing it to operate either before or after your view code is executed.
Middleware classes are not fancy; they simply have one or more methods that correspond to one of the five predefined hooks available. Let's take a closer look at them here.
Showing users exceptions is unprofessional and may be a security problem. Let's examine an easier way to create middleware that catches and responds to unhandled exceptions.
In this video we will explore the possibility of creating custom filters to make frequently used behaviors easily reusable for everyone on our team.
If you need a functionality that is too sophisticated for a filter, it should be a template tag. These are of several kinds, such as simple_tag for basic functionality and a template inclusion tag to bring in entire templates.
With the growing popularity of Angular.js and similar tools, more applications need to provide a RESTful API. Tastypie is a Python module that does most of the work for us. Let's check it out.
Sometimes you want to modify the data before it goes out to the API. Tastypie makes it easy to add or customize the data returned from the API.
Not all applications work with a read-only API. Sometimes, you want full CRUD support from your API. You need to add an authentication step before you make this functionality available. Fortunately, Tastypie does all of this for us.
Sometimes, you want to combine data from different models. It's not hard to do this with Python, but generic relationships allow Django to do this for you.
Have you wished you could add or edit many records to the database at once? With only a few lines of code, you can add this capability to your application.
Django's ORM works fine when your filters are combined using the AND operator. If you want to perform more complicated queries, you should use the Q function, which just gives you more flexibility with your logic.
Is your application running slow? You may be performing expensive operations more often than necessary. We can use low-level caching operations to have tight control over our application's performance.
Do you have data that is accessed on many views? We already know we can create middleware to reduce duplication, but why not add caching at to middleware to also speed up performance?
If your cache needs are simpler, you can perform caching at the template level. This can provide a tremendous improvement in performance and is easy to use.
Do you frequently perform the same query and filter operation in multiple views? Avoid duplication using model managers.
You may have a similar logic in multiple areas of the site to deal with inserting data. You can create a manager function that accepts your data as a parameter and centralizes your insertion logic.
Do you perform regular maintenance on your application? You can simplify periodic cron tasks by creating custom manage.py commands.
The aim of this video is to show you how to set up your system for Django development.
The aim of this video is to learn about the Django templates.
The aim of this video is to look at the models and how to store data in SQL database.
The aim of this video is to see how models, views, and templates work together to create useful application.
The aim of this video is to use Django forms to validate the input from the user.
The aim of this video is to discuss about the Django users and admin interface.
The aim of this video is to create relationships between different models.
The aim of this video is to extend the knowledge about Django ORM using Querysets and Managers.
The aim of this video is to extend our database models to cover some realistic use cases.
The aim of this video is to write some complex views to process the e-learning data.
The aim of this video is to implement a functionality for showing the test results.
The aim of this video is to extend the templates and make them more pretty.
The aim of this video is to learn about Authentication in Django.
The aim of this video is learn about class based views and how to use them in Django.
The aim of this video is to understand about the Django REST Framework package
The aim of this videos is to extent the API to allow users to submit data for the tests.
The aim of this video is to learn how to create a production environment to serve our application to the public.
This video will teach you how to prepare your application for deployment on Heroku.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.