Advanced Web Development in Python with Django

Video description

More than 8 Hours of Video Instruction


Advanced Web Development in Python with Django LiveLessons is intended for people familiar with web development who understand the basics of Django and want to get more out of it but are unfamiliar with more difficult topics such as authentication, database query optimization, and caching. The course builds directly on top of Andrew Pinkham's previous course, Web Development in Python with Django LiveLessons, starting with the same code base where the class left off and building new features in the same project, making for a clear and clean learning progression. While the previous course is not a hard prerequisite, the prerequisites for that course and the concepts introduced in it will be necessary to understand the videos. A review lesson enables people to judge for themselves whether the course is appropriate for their level.

About the Instructor
Andrew Pinkham is the founder and lead engineer at JamBon Software, which provides development consulting services. He is the author of Django Unleashed (Pearson) and a popular speaker at DjangoCon U.S., and provides instruction in Python and Django. Andrew specializes in web and mobile products and enjoys communicating complex ideas in simple ways. He is also passionate about usability, security, and distributed systems. He is a 2009 graduate of Dartmouth College and currently resides in Boston, Massachusetts.

Skill Level

Learn How To

  • Write tests for Django
  • Implement authentication in Django
  • Optimize Django performance
  • Enhance applications
  • Enable user media and processing with a Celery queue
  • Utilize asynchronous Python

Who Should Take This Course
Python programmers and other software developers interested in leveraging the Django web framework to build web applications

Course Requirements
Python programming experience

Lesson Descriptions

Lesson 1:Dip Your Toes Into Test Writing
Lesson 1 starts off the course with testing, which is crucial to successful software development. The lesson begins by looking at the why, what, and how of testing, and then dives into how to test all the different components in Django. You also get a taste of Django's check framework.

Lesson 2:Protect Site Access with Authentication
Lesson 2 starts with authentication, or login and logout, but the focus is not limited to just that. As always, the lesson begins by discussing the fundamentals, and then dives into how they work with Django. We'll build login and logout, views to allow users to change their password, views to allow people to reset forgotten passwords, and even set up new user registration.

Lesson 3:Protect API Access with Authentication
Lesson 3 is about how to use authentication and authorization to protect API endpoints. While the fundamentals are similar to Lesson 2, the actual work is different. The lesson starts with implementing token authentication and then switches to a more robust OAuth 2 authentication system. Andrew switches up the testing gears in this lesson, using Postman to interact with our API.

Lesson 4:Performance
Lesson 4 is about optimization. Andrew talks about how you should optimize a back-end web app and what common optimization problems are. You learn how to optimize database interactions when using models, and Andrew talks about how to improve the site with caching.

Lesson 5:Enhance the Application with Pagination, Static Content, and a Sitemap
Lesson 5 adds a bit of polish to your website. You use some of Django's contributed library and generic views to make navigation easier. This includes adding a few pages to organize things alphabetically and by date, as well as how to generate RSS and Atom feeds and a sitemap for search engines. Finally, you add some basic CSS to your site.

Lesson 6:Enabling User Media and Processing with a Celery Queue
Lesson 6 covers one of the places where Django needs a bit of help. The problem, in short, is that web browsers expect you to get a response back to them very quickly; however, sometimes you need to perform a computation for longer than that round-trip time. For your app to handle situations like these, you’ll need to offload work from Django to some other process. You learn how to use Celery and queues in tandem with Django to handle this sort of scenario.

Lesson 7:Asynchronous Python Lesson 7 delves into the changes happening in Python and Django. Andrew discusses Python's new async features, presents an example of using async in a different framework, and even leads you through programming an app that uses WebSockets as well as HTTP. Finally, Andrew discusses how these changes will affect Django in the near future.

About Pearson Video Training
Pearson publishes expert-led video tutorials covering a wide selection of technology topics designed to teach you the skills you need to succeed. These professional and personal technology videos feature world-leading author instructors published by your trusted technology brands: Addison-Wesley, Cisco Press, Pearson IT Certification, Prentice Hall, Sams, and Que. Topics include IT Certification, Network Security, Cisco Technology, Programming, Web Development, Mobile Development, and more. Learn more about Pearson Video training at

Table of contents

  1. Introduction
    1. Advanced Web Development in Python with Django: Introduction
  2. Lesson 1: Dip Your Toes into Test Writing
    1. Learning objectives
    2. 1.1 Introduce testing
    3. 1.2 Demonstrate test-driven development in Django--Part 1
    4. 1.3 Demonstrate test-driven development in Django--Part 2
    5. 1.4 Write tests for views and templates
    6. 1.5 Write tests for models
    7. 1.6 Write Django checks
    8. 1.7 Use factories for data generation
    9. 1.8 Property test serializers with Hypothesis
    10. 1.9 Upgrade Django
    11. 1.10 Discuss continuous delivery on Heroku
  3. Lesson 2: Protect Site Access with Authentication
    1. Learning objectives
    2. 2.1 Preview the final result
    3. 2.2 Introduce identification, authentication, and authorization
    4. 2.3 Define a custom user model for better identity-management and internationalization
    5. 2.4 Demonstrate the use of Content-Types, User, Permission, and Group
    6. 2.5 Configure the site to use the Argon2 password hasher instead of PBKDF2
    7. 2.6 Build web pages to log in and log out users
    8. 2.7 Customize login and logout
    9. 2.8 Build pages for users to change their passwords
    10. 2.9 Customize authentication and password URLs
    11. 2.10 Allow users to reset their forgotten password
    12. 2.11 Protect pages with login
    13. 2.12 Protect pages with permissions
    14. 2.13 Allow new user registration
    15. 2.14 Configure Django to send emails
  4. Lesson 3: Protect API Access with Authentication
    1. Learning objectives
    2. 3.1 Preview the final result
    3. 3.2 Build an API endpoint to provide authorization tokens
    4. 3.3 Understand OAuth
    5. 3.4 Configure Django as an OAuth2 provider
  5. Lesson 4: Performance
    1. Learning objectives
    2. 4.1 Understand performance bottlenecks and profiling
    3. 4.2 Optimize database queries--Part 1
    4. 4.3 Optimize database queries--Part 2
    5. 4.4 Cache Django data
  6. Lesson 5: Enhance the Application with Pagination, Static Content, and a Sitemap
    1. Learning objectives
    2. 5.1 Add static content
    3. 5.2 Paginate results in HTML
    4. 5.3 Paginate results in the API
    5. 5.4 Organize data using generic date views
    6. 5.5 Add RSS and Atom feeds
    7. 5.6 Generate a sitemap in Django
  7. Lesson 6: Enabling User Media and Processing with a Celery Queue
    1. Learning objectives
    2. 6.1 Understand when to use queues
    3. 6.2 Set up media serving with a CDN on AWS and django-storage
    4. 6.3 Define media in models and migrate your database
    5. 6.4 Write a Celery task
  8. Lesson 7: Asynchronous Python
    1. Learning objectives
    2. 7.1 Begin to use asynchronous Python with async/await
    3. 7.2 Use Starlette to create async APIs
    4. 7.3 Use Starlette to establish WebSocket connections
    5. 7.4 See into Django's asynchronous future
  9. Summary
    1. Advanced Web Development in Python with Django: Summary

Product information

  • Title: Advanced Web Development in Python with Django
  • Author(s): Andrew Pinkham
  • Release date: November 2019
  • Publisher(s): Pearson
  • ISBN: 0136552943