Django 3 Web Development Cookbook
eBook - ePub

Django 3 Web Development Cookbook

Actionable solutions to common problems in Python web development, 4th Edition

  1. 608 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Django 3 Web Development Cookbook

Actionable solutions to common problems in Python web development, 4th Edition

About this book

Practical recipes for building fast, robust, and secure web apps using Django 3 and Python

Key Features

  • Explore the latest version of Django, and learn effectively with the help of practical examples
  • Follow a task-based approach to develop professional web apps using Django and Python
  • Discover recipes to enhance the security and performance of your apps

Book Description

Django is a web framework for perfectionists with deadlines, designed to help you build manageable medium and large web projects in a short time span. This fourth edition of the Django Web Development Cookbook is updated with Django 3's latest features to guide you effectively through the development process.

This Django book starts by helping you create a virtual environment and project structure for building Python web apps. You'll learn how to build models, views, forms, and templates for your web apps and then integrate JavaScript in your Django apps to add more features. As you advance, you'll create responsive multilingual websites, ready to be shared on social networks. The book will take you through uploading and processing images, rendering data in HTML5, PDF, and Excel, using and creating APIs, and navigating different data types in Django. You'll become well-versed in security best practices and caching techniques to enhance your website's security and speed. This edition not only helps you work with the PostgreSQL database but also the MySQL database. You'll also discover advanced recipes for using Django with Docker and Ansible in development, staging, and production environments.

By the end of this book, you will have become proficient in using Django's powerful features and will be equipped to create robust websites.

What you will learn

  • Discover how to set the basic configurations to start any Django project
  • Understand full-stack web application development using Django
  • Build a database structure using reusable model mixins
  • Implement security, performance, and deployment features in your web apps
  • Import data from local sources and external web services and export it to your app
  • Secure web applications against malicious usage and find and fix common performance bottlenecks

Who this book is for

This Django book is for Python web developers who want to build fast and secure web apps that can scale over time. You'll also find this book useful if you are looking to upgrade to the latest Django 3 framework. Prior experience of working with the Django framework is required.

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere β€” even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access Django 3 Web Development Cookbook by Aidas Bendoraitis,Jake Kronika in PDF and/or ePUB format, as well as other popular books in Computer Science & Digital Marketing. We have over one million books available in our catalogue for you to explore.

Information

Forms and Views

In this chapter, we will cover the following topics:
  • Creating an app with CRUDL functions
  • Saving the author of a model instance
  • Uploading images
  • Creating a form layout with custom templates
  • Creating a form layout with django-crispy-forms
  • Working with formsets
  • Filtering object lists
  • Managing paginated lists
  • Composing class-based views
  • Providing Open Graph and Twitter Card data
  • Providing schema.org vocabularies
  • Generating PDF documents
  • Implementing a multilingual search with Haystack and Whoosh
  • Implementing a multilingual search with Elasticsearch DSL

Introduction

While a database structure is defined in models, views provide the endpoints necessary to show content to users or to let them enter new and updated data. In this chapter, we will focus on views for managing forms, the list view, and views generating alternative outputs to HTML. In the simplest examples, we will leave the creation of URL rules and templates up to you.

Technical requirements

To work with the code of this chapter, as before, you will need the latest stable version of Python, MySQL, or a PostgreSQL database, and a Django project with a virtual environment. Some recipes will require specific Python dependencies. In addition, for generating PDF documents, you will need the cairo, pango, gdk-pixbuf, and libffi libraries. For searches, you will need an Elasticsearch server. You will get more details about them later in the corresponding recipes.
Most of the templates in this chapter will use the Bootstrap 4 CSS framework for a nicer look and feel.
You can find all of the code for this chapter in the ch03 directory of the GitHub repository at: https://github.com/PacktPublishing/Django-3-Web-Development-Cookbook-Fourth-Edition.

Creating an app with CRUDL functions

In computer science, the CRUDL acronym stands for Create, Read, Update, Delete, and List functions. Many Django projects with interactive functionality will need you to implement all of those functions to manage data on the website. In this recipe, we will see how to create URLs and views for these basic functions.

Getting ready

Let's create a new app called ideas and put it in INSTALLED_APPS in the settings. Create the following Idea model with an IdeaTranslations model for translations inside of that app:
# myproject/apps/idea/models.py
import uuid

from django.db import models
from django.urls import reverse
from django.conf import settings
from django.utils.translation import gettext_lazy as _

from myproject.apps.core.model_fields import TranslatedField
from myproject.apps.core.models import (
CreationModificationDateBase, UrlBase
)

RATING_CHOICES = (
(1, "β˜…β˜†β˜†β˜†β˜†"),
(2, "β˜…β˜…β˜†β˜†β˜†"),
(3, "β˜…β˜…β˜…β˜†β˜†"),
(4, "β˜…β˜…β˜…β˜…β˜†"),
(5, "β˜…β˜…β˜…β˜…β˜…"),
)


class Idea(CreationModificationDateBase, UrlBase):
uuid = models.UUIDField(
primary_key=True, default=uuid.uuid4, editable=False
)
author = models.ForeignKey(
settings.AUTH_USER_MODEL,
verbose_name=_("Author"),
on_delete=models.SET_NULL,
blank=True,
null=True,
related_name="authored_ideas",
)
title = models.CharField(_("T...

Table of contents

  1. Title Page
  2. Copyright and Credits
  3. About Packt
  4. Contributors
  5. Preface
  6. Getting Started with Django 3.0
  7. Models and Database Structure
  8. Forms and Views
  9. Templates and JavaScript
  10. Custom Template Filters and Tags
  11. Model Administration
  12. Security and Performance
  13. Hierarchical Structures
  14. Importing and Exporting Data
  15. Bells and Whistles
  16. Testing
  17. Deployment
  18. Maintenance
  19. Other Books You May Enjoy