text: from django.http import HttpResponse
  from django.shortcuts import get_object_or_404, redirect, render
  from django.template import loader
  
  import json
  
  from . import getdata, maps
  
  
  def index(request):
      return render(request, template_name="index.html")
  
  
  def report(request):
      df = getdata.daily_report(date_string=None)
      df = df[["Confirmed", "Deaths", "Recovered"]].sum()
      death_rate = f"{(df.Deaths / df.Confirmed)*100:.02f}%"
  
      data = {
          "num_confirmed": int(df.Confirmed),
          "num_recovered": int(df.Recovered),
          "num_deaths": int(df.Deaths),
          "death_rate": death_rate,
      }
  
      data = json.dumps(data)
  
      return HttpResponse(data, content_type="application/json")
  
  
  def trends(request):
      df = getdata.percentage_trends()
  
      data = {
          "confirmed_trend": int(round(df.Confirmed)),
          "deaths_trend": int(round(df.Deaths)),
          "recovered_trend": int(round(df.Recovered)),
          "death_rate_trend": float(df.Death_rate),
      }
  
      data = json.dumps(data)
  
      return HttpResponse(data, content_type="application/json")
  
  
  def datamap_test(request):
      df = getdata.datamap_test()
      return HttpResponse(
          df.to_json(orient="records", force_ascii=False), content_type="application/json"
      )
  
  
  def world_map():
      plot_div = maps.world_map()
      return {"world_map": plot_div}
  
  
  def realtime_growth(request):
      import pandas as pd
  
      df = getdata.realtime_growth()
  
      df.index = pd.to_datetime(df.index)
      df.index = df.index.strftime("%Y-%m-%d")
  
      return HttpResponse(df.to_json(orient="columns"), content_type="application/json")
  
  
  def daily_growth(request):
      df_confirmed = getdata.daily_confirmed()[["date", "World"]]
      df_deaths = getdata.daily_deaths()[["date", "World"]]
  
      df_confirmed = df_confirmed.set_index("date")
      df_deaths = df_deaths.set_index("date")
  
      json_string = (
          "{"
          + '"confirmed": '
          + df_confirmed.to_json(orient="columns")
          + ","
          + '"deaths": '
          + df_deaths.to_json(orient="columns")
          + "}"
      )
  
      return HttpResponse(json_string, content_type="application/json")
  
  
  def daily_report(request):
      df = getdata.daily_report()
  
      df.drop(
          [
              "FIPS",
              "Admin2",
              "Province_State",
              "Country_Region",
              "Last_Update",
              "Deaths",
              "Recovered",
              "Active",
              "Incident_Rate",
              "Case_Fatality_Ratio",
          ],
          axis=1,
          inplace=True,
      )
  
      return HttpResponse(df.to_json(orient="columns"), content_type="application/json")
  
  
  def mapspage(request):
      plot_div = maps.usa_map()
      return render(
          request, template_name="pages/maps.html", context={"usa_map": plot_div}
      )
  