Django 3 Web Development Cookbook
eBook - ePub

Django 3 Web Development Cookbook

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

Aidas Bendoraitis, Jake Kronika

Share book
  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

Aidas Bendoraitis, Jake Kronika

Book details
Book preview
Table of contents
Citations

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

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
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.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
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.
Do you support text-to-speech?
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.
Is Django 3 Web Development Cookbook an online PDF/ePUB?
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 Informatik & Webservices & APIs. We have over one million books available in our catalogue for you to explore.

Information

Year
2020
ISBN
9781838985974
Edition
4

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