Advanced Web Development in Python with Django LiveLessons

Advanced Web Development in Python with Django LiveLessons

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 8h 56m | 5.18 GB

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.

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

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.

Table of Contents

01 Advanced Web Development in Python with Django – Introduction
02 Learning objectives
03 1.1 Introduce testing
04 1.2 Demonstrate test-driven development in Django–Part 1
05 1.3 Demonstrate test-driven development in Django–Part 2
06 1.4 Write tests for views and templates
07 1.5 Write tests for models
08 1.6 Write Django checks
09 1.7 Use factories for data generation
10 1.8 Property test serializers with Hypothesis
11 1.9 Upgrade Django
12 1.10 Discuss continuous delivery on Heroku
13 Learning objectives
14 2.1 Preview the final result
15 2.2 Introduce identification, authentication, and authorization
16 2.3 Define a custom user model for better identity-management and internationalization
17 2.4 Demonstrate the use of Content-Types, User, Permission, and Group
18 2.5 Configure the site to use the Argon2 password hasher instead of PBKDF2
19 2.6 Build web pages to log in and log out users
20 2.7 Customize login and logout
21 2.8 Build pages for users to change their passwords
22 2.9 Customize authentication and password URLs
23 2.10 Allow users to reset their forgotten password
24 2.11 Protect pages with login
25 2.12 Protect pages with permissions
26 2.13 Allow new user registration
27 2.14 Configure Django to send emails
28 Learning objectives
29 3.1 Preview the final result
30 3.2 Build an API endpoint to provide authorization tokens
31 3.3 Understand OAuth
32 3.4 Configure Django as an OAuth2 provider
33 Learning objectives
34 4.1 Understand performance bottlenecks and profiling
35 4.2 Optimize database queries–Part 1
36 4.3 Optimize database queries–Part 2
37 4.4 Cache Django data
38 Learning objectives
39 5.1 Add static content
40 5.2 Paginate results in HTML
41 5.3 Paginate results in the API
42 5.4 Organize data using generic date views
43 5.5 Add RSS and Atom feeds
44 5.6 Generate a sitemap in Django
45 Learning objectives
46 6.1 Understand when to use queues
47 6.2 Set up media serving with a CDN on AWS and django-storage
48 6.3 Define media in models and migrate your database
49 6.4 Write a Celery task
50 Learning objectives
51 7.1 Begin to use asynchronous Python with async_await
52 7.2 Use Starlette to create async APIs
53 7.3 Use Starlette to establish WebSocket connections
54 7.4 See into Django’s asynchronous future
55 Advanced Web Development in Python with Django – Summary