Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Django 5 By Example
Django 5 By Example

Django 5 By Example: Build powerful and reliable Python web applications from scratch , Fifth Edition

Arrow left icon
Profile Icon Antonio Melé
Arrow right icon
NZ$34.99 NZ$58.99
Full star icon Full star icon Full star icon Full star icon Half star icon 4.5 (36 Ratings)
eBook Apr 2024 820 pages 5th Edition
eBook
NZ$34.99 NZ$58.99
Paperback
NZ$43.99 NZ$73.99
Subscription
Free Trial
Arrow left icon
Profile Icon Antonio Melé
Arrow right icon
NZ$34.99 NZ$58.99
Full star icon Full star icon Full star icon Full star icon Half star icon 4.5 (36 Ratings)
eBook Apr 2024 820 pages 5th Edition
eBook
NZ$34.99 NZ$58.99
Paperback
NZ$43.99 NZ$73.99
Subscription
Free Trial
eBook
NZ$34.99 NZ$58.99
Paperback
NZ$43.99 NZ$73.99
Subscription
Free Trial

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
Table of content icon View table of contents Preview book icon Preview Book

Django 5 By Example

The request/response cycle

Let’s review the request/response cycle of Django with the application we built. The following schema shows a simplified example of how Django processes HTTP requests and generates HTTP responses:

Figure 1.19: The Django request/response cycle

Let’s review the Django request/response process:

  1. A web browser requests a page by its URL, for example, https://domain.com/blog/33/. The web server receives the HTTP request and passes it over to Django.
  2. Django runs through each URL pattern defined in the URL patterns configuration. The framework checks each pattern against the given URL path, in order of appearance, and stops at the first one that matches the requested URL. In this case, the pattern /blog/<id>/ matches the path /blog/33/.
  3. Django imports the view of the matching URL pattern and executes it, passing an instance of the HttpRequest class and the keyword or positional arguments. The view uses the models to retrieve information from...

Management commands used in this chapter

In this chapter we have introduced a variety of Django management commands. You need to get familiar with them, as they will be used often throughout the book. Let’s revisit the commands we have covered in this chapter.

To create the file structure for a new Django project named mysite we have used the following command:

django-admin startproject mysite

To create the file structure for a new Django application named blog:

python manage.py startapp blog

To apply all database migrations:

python manage.py migrate

To create migrations for the models of the blog application:

python manage.py makemigrations blog

To view the SQL statements that will be executed with the first migration of the blog application:

python manage.py sqlmigrate blog 0001

To run the Django development server:

python manage.py runserver

To run the development server specifying host/port and settings file:

python manage.py runserver 127.0.0.1:8001 --settings...

Summary

In this chapter, you learned the basics of the Django web framework by creating a simple blog application. You designed the data models and applied migrations to the database. You also created the views, templates, and URLs for your blog.

In the next chapter, you will learn how to create canonical URLs for models and how to build SEO-friendly URLs for blog posts. You will also learn how to implement object pagination and how to build class-based views. You will also implement Django forms to let your users recommend posts by email and comment on posts.

Additional resources

The following resources provide additional information related to the topics covered in this chapter:

Adding pagination

When you start adding content to your blog, you can easily store tens or hundreds of posts in your database. Instead of displaying all the posts on a single page, you may want to split the list of posts across several pages and include navigation links to the different pages. This functionality is called pagination, and you can find it in almost every web application that displays long lists of items.

For example, Google uses pagination to divide search results across multiple pages. Figure 2.3 shows Google’s pagination links for search result pages:

Figure 2.3: Google pagination links for search result pages

Django has a built-in pagination class that allows you to manage paginated data easily. You can define the number of objects you want to be returned per page and you can retrieve the posts that correspond to the page requested by the user.

Adding pagination to the post list view

We will add pagination to the list of posts so that...

Building class-based views

We have built the blog application using function-based views. Function-based views are simple and powerful, but Django also allows you to build views using classes.

Class-based views are an alternative way to implement views as Python objects instead of functions. Since a view is a function that takes a web request and returns a web response, you can also define your views as class methods. Django provides base view classes that you can use to implement your own views. All of them inherit from the View class, which handles HTTP method dispatching and other common functionalities.

Why use class-based views

Class-based views offer some advantages over function-based views that are useful for specific use cases. Class-based views allow you to:

  • Organize code related to HTTP methods, such as GET, POST, or PUT, in separate methods, instead of using conditional branching
  • Use multiple inheritance to create reusable view classes (also...

Recommending posts by email

We will allow users to share blog posts with others by sending post recommendations via email. You will learn how to create forms in Django, handle data submission, and send emails with Django, enhancing your blog with a personal touch.

Take a minute to think about how you could use views, URLs, and templates to create this functionality using what you learned in the preceding chapter.

To allow users to share posts via email, we will need to:

  1. Create a form for users to fill in their name, their email address, the recipient’s email address, and optional comments
  2. Create a view in the views.py file that handles the posted data and sends the email
  3. Add a URL pattern for the new view in the urls.py file of the blog application
  4. Create a template to display the form

Creating forms with Django

Let’s start by building the form to share posts. Django has a built-in forms framework that allows you to create...

Creating a comment system

We will continue extending our blog application with a comment system that will allow users to comment on posts. To build the comment system, we will need the following:

  • A comment model to store user comments on posts
  • A Django form that allows users to submit comments and manages the data validation
  • A view that processes the form and saves a new comment to the database
  • A list of comments and the HTML form to add a new comment that can be included in the post detail template

Creating a model for comments

Let’s start by building a model to store user comments on posts.

Open the models.py file of your blog application and add the following code:

class Comment(models.Model):
    post = models.ForeignKey(
        Post,
        on_delete=models.CASCADE,
        related_name='comments'
    )
    name = models.CharField(max_length=80)
    email = models.EmailField()
    body = models.TextField()
...

Summary

In this chapter, you learned how to define canonical URLs for models. You created SEO-friendly URLs for blog posts, and you implemented object pagination for your post list. You also learned how to work with Django forms and model forms. You created a system to recommend posts by email and created a comment system for your blog.

In the next chapter, you will create a tagging system for the blog. You will learn how to build complex QuerySets to retrieve objects by similarity. You will learn how to create custom template tags and filters. You will also build a custom sitemap and feed for your blog posts and implement full-text search functionality for your posts.

Additional resources

The following resources provide additional information related to the topics covered in this chapter:

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Updated with Django 5 features, detailed app planning, improved tooling, and GPT prompts for extending projects
  • Learn Django essentials, including models, ORM, views, templates, URLs, forms, authentication, signals, and middleware
  • Integrate JavaScript, PostgreSQL, Redis, Celery, Docker, and Memcached into your applications

Description

If you want to learn Django by doing, this book is for you. Django 5 By Example is the fifth edition of the best-selling franchise that helps you build real-world web apps. This book will walk you through planning and creation, solving common problems, and implementing best practices using a step-by-step approach. You’ll cover a wide range of web application development topics through four different projects: a blog application, a social website, an e-commerce application, and an e-learning platform. Pick up what’s new in Django 5 as you build end-to-end Python web apps, follow detailed project plans, and understand the hows and whys of Django. This is a practical and approachable book that will have you creating web apps quickly.

Who is this book for?

This book is for readers with basic Python programming knowledge and programmers transitioning from other web frameworks who wish to learn Django by doing. If you already use Django, or have in the past, and want to learn best practices and integrate other technologies to scale your applications, then this book is for you too. This book will help you master the most relevant areas of the framework by building practical projects from scratch. Some previous knowledge of HTML and JavaScript is assumed.

What you will learn

  • Use different modules of the Django framework to solve specific problems
  • Integrate third-party Django applications into your project
  • Build complex web applications using Redis, Postgres, Celery/RabbitMQ, and Memcached
  • Set up a production environment for your projects with Docker Compose
  • Build a RESTful API with Django Rest Framework (DRF)
  • Implement advanced functionalities, such as full-text search engines, user activity streams, payment gateways, and recommendation engines
  • Build real-time asynchronous (ASGI) apps with Django Channels and WebSockets

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Apr 30, 2024
Length: 820 pages
Edition : 5th
Language : English
ISBN-13 : 9781805122340
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning

Product Details

Publication date : Apr 30, 2024
Length: 820 pages
Edition : 5th
Language : English
ISBN-13 : 9781805122340
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just NZ$7 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just NZ$7 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total NZ$ 149.97 202.97 53.00 saved
Building LLM Powered  Applications
NZ$50.99 NZ$73.99
Django in Production
NZ$54.99
Django 5 By Example
NZ$43.99 NZ$73.99
Total NZ$ 149.97 202.97 53.00 saved Stars icon

Table of Contents

19 Chapters
Building a Blog Application Chevron down icon Chevron up icon
Enhancing Your Blog and Adding Social Features Chevron down icon Chevron up icon
Extending Your Blog Application Chevron down icon Chevron up icon
Building a Social Website Chevron down icon Chevron up icon
Implementing Social Authentication Chevron down icon Chevron up icon
Sharing Content on Your Website Chevron down icon Chevron up icon
Tracking User Actions Chevron down icon Chevron up icon
Building an Online Shop Chevron down icon Chevron up icon
Managing Payments and Orders Chevron down icon Chevron up icon
Extending Your Shop Chevron down icon Chevron up icon
Adding Internationalization to Your Shop Chevron down icon Chevron up icon
Building an E-Learning Platform Chevron down icon Chevron up icon
Creating a Content Management System Chevron down icon Chevron up icon
Rendering and Caching Content Chevron down icon Chevron up icon
Building an API Chevron down icon Chevron up icon
Building a Chat Server Chevron down icon Chevron up icon
Going Live Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.5
(36 Ratings)
5 star 83.3%
4 star 2.8%
3 star 5.6%
2 star 0%
1 star 8.3%
Filter icon Filter
Top Reviews

Filter reviews by




Daljeet Jul 12, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The content is too good, it should be on 5 star all time
Subscriber review Packt
Sherry Jun 21, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book is a must have! I have Antonio's Django 4 by Example book and it single-handedly taught me how to complete a full stack Django project. Concise and consistent coding examples, along with steps. Highly recommend!
Subscriber review Packt
daniel Jun 10, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Love the Book! Thanks for all the help! I really recommend this book for any level.
Subscriber review Packt
Melissa Jul 10, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Very well laid out and explained with great examples.
Subscriber review Packt
Δημήτριος Aug 17, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Subscriber review Packt