Corona Tracker | Django Project |
Tags: django, corona, python
Published: 2021-05-18 09:49:19

Hello Friends,
Do you also want to make your own website like **Corona Tracker** so that you can get updates of Corona sitting at home?
In this blog you will get the source code of Corona Tracker Project, with the help of which you can create your tracker.


#SOURCE CODE
####views.py
```python
from django.shortcuts import render
from django.http import HttpResponse

from bs4 import BeautifulSoup
import requests

url = 'https://www.mygov.in/corona-data/covid19-statewise-status/'

r = requests.get(url)
data = r.content
soup = BeautifulSoup(data, 'html.parser')


# Create your views here.
def index(request):
	active_cases = soup.find_all('div', {"class": "field-name-field-total-active-case"})
	cured_cases = soup.find_all('div', {"class": "field-name-field-total-cured-discharged"})
	death_cases = soup.find_all('div', {"class": "field-name-field-total-death-case"})

	state_lis = []
	confirmed = []
	cured = []
	deaths = []

	state_class = soup.find_all('div', {"class": "field-name-field-select-state"})
	confirmed_class = soup.find_all('div', {"class": "field-name-field-total-confirmed-indians"})
	cured_class = soup.find_all('div', {"class": "field-name-field-cured"})
	death_class = soup.find_all('div', {"class": "field-name-field-deaths"})

	for state in state_class:
		state_lis.append(state.text[12:])
	for confirm in confirmed_class:
		confirmed.append(confirm.text[17:])
	for cure in cured_class:
		cured.append(cure.text[28:])		
	for death in death_class:
		deaths.append(death.text[7:])

	params = {"active_cases": active_cases[0].text[13:],
			  "cured_cases": cured_cases[0].text[18:],
			  "death_cases": death_cases[0].text[7:],
			  "states": state_lis,
			  "confirm": confirmed,"deaths": deaths, "cured": cured}
	return render(request, 'index.html', params)

```

###urls.py
```python
from django.urls import path
from . import views

urlpatterns = [
	path('', views.index, name='index')
]
```

###index.html
```html
<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">

    <title>Corona Tracker</title>
  </head>
  <body>
    <div class="container btn-primary w-50">
      <h2 style="transform: translate(30%, 0%)">Simple Corona Tracker</h2>
    </div>
    <div class="container my-2 w-75">
      <div class="row">
        <div class="col">
          <h5>Active Cases: <span style="color: blue;">{{active_cases}}</span></h2>
        </div>
        <div class="col">
          <h5>Cured Cases: <span style="color: green;">{{cured_cases}}</span></h2>
        </div>
        <div class="col">
          <h5>Death Cases: <span style="color: red;">{{death_cases}}</span></h2>
        </div>
      </div>
    </div>


    <div class="container border w-25" style="margin-left: 120px; display: inline-block;">
      <h4>STATES</h4>
      {% for s in states %}
        <h6>{{s | truncatechars:27}}</h6>
        <hr>
      {% endfor %}
    </div>

    <div class="container border w-25" style="display: inline-block;">
      <h4>TOTAL CONFRIMED</h4>
      {% for c in confirm %}
        <h6>{{c}}</h6>
        <hr>
      {% endfor %}
    </div>

    <div class="container border w-25" style="display: inline-block;">
      <h4>CURED</h4>
      {% for cr in cured %}
        <h6>{{cr}}</h6>
        <hr>
      {% endfor %}
    </div>

    <div class="container border" style=" display: inline-block; width: 200px;">
      <h4>DEATHS</h4>
      {% for d in deaths %}
        <h6>{{d}}</h6>
        <hr>
      {% endfor %}
    </div>




    <!-- Option 1: Bootstrap Bundle with Popper -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"></script>
  </body>
</html>
```