Book Image

Django 3 By Example - Third Edition

By : Antonio Melé
Book Image

Django 3 By Example - Third Edition

By: Antonio Melé

Overview of this book

If you want to learn the entire process of developing professional web applications with Python and Django, then this book is for you. In the process of building four professional Django projects, you will learn about Django 3 features, how to solve common web development problems, how to implement best practices, and how to successfully deploy your applications. In this book, you will build a blog application, a social image bookmarking website, an online shop, and an e-learning platform. Step-by-step guidance will teach you how to integrate popular technologies, enhance your applications with AJAX, create RESTful APIs, and set up a production environment for your Django projects. By the end of this book, you will have mastered Django 3 by building advanced web applications.
Table of Contents (17 chapters)
15
Other Books You May Enjoy
16
Index

Creating custom decorators for your views

Let's restrict your AJAX views to allow only requests generated via AJAX. The Django request object provides an is_ajax() method that checks whether the request is being made with XMLHttpRequest, which means that it is an AJAX request. This value is set in the HTTP_X_REQUESTED_WITH HTTP header, which is included in AJAX requests by most JavaScript libraries.

Next, you will create a decorator for checking the HTTP_X_REQUESTED_WITH header in your views. A decorator is a function that takes another function and extends the behavior of the latter without explicitly modifying it. If the concept of decorators is foreign to you, you might want to take a look at https://www.python.org/dev/peps/pep-0318/ before you continue reading.

Since your decorator will be generic and could be applied to any view, you will create a common Python package in your project. Create the following directory and files inside the bookmarks project directory...