Tag Archives: learn django with example

how-to-create-bar-chart-with-matplotlib-and-django-3

How to create Bar Chart image with Matplotlib in Django

Hello World, Welcome to projectsplaza.com. Today I am going to discuss how to create a bar chart image with the Matplotlib in Django 3. We will create a bar chart according to data and save a png image and then display this image in the Django template. I have divided this tutorial into the following parts:

  • Matplotlib introduction
  • Install Matplotlib
  • Create a bar chart view method
  • Show bar chart in the template view

Continue reading

How to share common data in all Django templates

Hello World, Welcome to ProjectsPlaza.com. Today I am going to discuss how to share common data in all Django templates. In this tutorial, we will show common data in all templates with the help of a context processor.
According to the official documentation:
context_processors is a list of dotted Python paths to callables that are used to populate the context when a template is rendered with a request. These callables take a request object as their argument and return a dictionary of items to be merged into the context.

We will create a very simple example. In this example, we will create some view methods and their relative template. Then we will pass dictionary data to context processor and show in all templates.
I have assumed that you have basic knowledge of Django. If you are new to Django then please see our beginner tutorials.
I have divided this tutorial into the following steps:
  • Create shareData app and add to project
  • Create two view method index and show with their relative HTML templates
  • Create a URL and add to the project to show the template view
  • Create a third view method to pass data in a context processor
  • Access the data in both templates

Continue reading

create-piechart-in-django-with-matplotlib

How to create piechart with matplotlib in django 3

Hello World, Welcome to projectsplaza.com. Today I am going to discuss how to create a piechart with the Matplotlib in Django 3. We will create a piechart according to data and save a png image and then display this image in the Django template. I have divided this tutorial into the following parts:
  • Matplotlib introduction
  • Install Matplotlib
  • Create a piechart view method
  • Show piechart in the template view

Matplotlib Introduction

According to the official website: Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python.


Install Matplotlib

First of all, we will install the Matplotlib package with the following command.

pip install matplotlib

Add this package to your project-level settings.py  in the installed apps list.


Create a view method for piechart

In this step, we will create a method to create a piechart with the matplotlib package. Add the following method in views.py file.

# MatPlotLib
import matplotlib
matplotlib.use('Agg')
from matplotlib import pyplot as plt
import numpy as np

# Pie Chart
def piechart(request):
    # Pie chart, where the slices will be ordered and plotted counter-clockwise:
    labels = 'Sale', 'Purchase'
    sizes = [random.randint(10,30), random.randint(30,50)]
    explode = (0.1, 0)  # only "explode" the 2nd slice (i.e. 'Hogs')

    fig1, ax1 = plt.subplots()
    ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
            shadow=True, startangle=90)
    ax1.axis('equal')  # Equal aspect ratio ensures that pie is drawn as a circle.
    plt.savefig('media/sale_purchase_peichart.png',dpi=100)
    return render(request,'piechart.html')

In the above code, We are passing random numbers for sale and purchase value. Every time you refresh you will see the different piechart. You can replace the random number with dynamic values. We are showing a piechart as an image so we will do the following things to show the image.

  • Add the following code to the urls.py file.
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns=[
    path('',views.piechart,name='piechart')
]

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  • Create a media directory as root because we are saving the image in this folder.

Show piechart in the template view

Till now we have saved the piechart in the folder. In this step, we will show the image in the Django template.

  • Create a piechart.html file in the templates folder and add the following code.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PieChart with Matplotlib</title>
</head>
<body>
    <h3>Sale Purchase Via PieChart</h3>
    <hr/>
    <img src="./media/sale_purchase_peichart.png" />
</body>
</html>

When you will run the application in the browser, you will see the following screen.

 

add-and-update-data-with-django-model-form

Add and update data with Model Form in django 3

Hello World, Welcome to ProjectsPlaza.com. Today I am going to discuss how to add and update data with ModelForm in Django 3. In this tutorial, We will create a simple todo application with add, update, and delete functionality. I have divided this tutorial into the following steps:

  • Create a learning project
  • Create todo app
  • Create todo Model
  • Create add and update form from todo model
  • Delete todo item
  • Add bootstrap 4 in the templates

This is a small but full-fledged application built with Django 3 and bootstrap 4. You can download source code from GitHub.

Continue reading

how-to-upload-image-in-django

How to upload image in django

Hello World, Welcome to ProjectPlaza.com. Today we will discuss how to upload image in Django. We will create a simple form to upload a single image. We will upload an image with Django core FileSystemStorage package.  I have divided this tutorial into the following parts:

I have assumed that you have basic knowledge of Django. If not then please see this tutorial.

  • Path setting for upload folder
  • Create upload form
  • Upload Image

Continue reading

how-to-create-search-option-in-django-3

How to create search field in django admin

Hello World, Welcome to ProjectsPlaza.com. Today we will discuss how to create a search field in the Django admin panel. I am using Django 3. Django is a very powerful MVT (Model View Template) web Framework built with python. It comes with lots of features.

For creating a search option in the Django admin panel, We just need to activate the search features. If you have not created an admin panel in Django then please have a look at the following tutorial ?.

How to create an admin panel in Django 3

Continue reading

use-annotate-aggrgation-in-django

How to use annotate aggregation in django

Hello World, Welcome to ProjectsPlaza.com. Today we will discuss how to use annotate aggregation in Django. In this tutorial, we will fetch data from two different models. For example, I am creating a video sharing website like YouTube. I have two models. One is a channel and another is a video. Both models are joined with foreign keys. Now I want to fetch channels with videos count. I will do this with annotate aggregation.

Continue reading

create-class-based-view-in-django

Create class based view in django 3

Hello World, Welcome to projects plaza.com. Today we will learn how to create a class-based view in Django 3. In this tutorial, we will render a simple template via class. Basically, there are two methods to load the view template in Django. One is a function-based view(FBV) and another is a class-based view(CBV). Class-based views were introduced in Django 1.7. The reason behind this was the proper structure, inheritance and the developer can customize the class-based view more than the function-based view.

  • Create cbv.html in the templates folder in your app and add the following code.
  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>CBV View</title>
    </head>
    <body>
        <h3>Hello World, This is class based view</h3>
    </body>
    </html>

     

  • Open app/urls.py and add the following code in it
  • urlpatterns=[
        ...
        path('cbv',TemplateView.as_view(template_name="cbv.html"))
    ]