source: music/views.py@ bfca48b

Last change on this file since bfca48b was bfca48b, checked in by ManuelTrajcev <manueltrajcev7@…>, 3 weeks ago

+4 views with controlers and templates

  • Property mode set to 100644
File size: 3.2 KB
Line 
1from django.shortcuts import render
2import os
3import django
4from django.db import connection
5
6os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MuiscOrganizationSystem.settings')
7django.setup()
8
9from music.models import *
10
11
12# Create your views here.
13
14def album_list(request):
15 heading = request.GET.get('model', 'All Albums')
16 data = Album.objects.values_list('title', flat=True)
17 return render(request, 'list.html', {'data': data, 'heading': heading})
18
19
20def track_list(request):
21 heading = request.GET.get('model', 'All Tracks')
22 data = Track.objects.values_list('name', flat=True)
23 return render(request, 'list.html', {'data': data, 'heading': heading})
24
25
26def artist_list(request):
27 heading = request.GET.get('model', 'All Artists')
28 data = Artist.objects.values_list('name', flat=True)
29 print(data)
30 return render(request, 'list.html', {'data': data, 'heading': heading})
31
32
33# VIEWS
34def tracks_count_per_genre(request):
35 with connection.cursor() as cursor:
36 cursor.execute("SELECT * FROM track_count_per_genre;")
37 rows = cursor.fetchall()
38
39 data = [{'genre': row[0], 'count': row[1]} for row in rows]
40 print(data)
41
42 return render(request, 'track_count_per_genre.html', {'data': data})
43
44
45def avg_track_duration(request):
46 with connection.cursor() as cursor:
47 cursor.execute("SELECT * FROM avg_track_duration_per_artist;")
48 rows = cursor.fetchall()
49
50 data = [{'artist': row[0], 'avg': row[1]} for row in rows]
51 print(data)
52
53 return render(request, 'avg_track_duration.html', {'data': data})
54
55
56def rank_list_most_active_customers(request):
57 with connection.cursor() as cursor:
58 cursor.execute("SELECT * FROM rank_list_most_active_customers_view;")
59 rows = cursor.fetchall()
60
61 data = [{'name': row[0], 'total_orders': row[1], 'total_money_spent': row[2]} for row in rows]
62
63 return render(request, 'rank_list_most_active_customers.html', {'data': data})
64
65
66def avg_price_per_artist(request):
67 with connection.cursor() as cursor:
68 cursor.execute("SELECT * FROM avg_price_per_artist;")
69 rows = cursor.fetchall()
70
71 data = [{'name': row[0], 'avg_price_per_track': row[1]} for row in rows]
72
73 return render(request, 'avg_price_per_artist.html', {'data': data})
74
75
76def rank_list_artists(request):
77 with connection.cursor() as cursor:
78 cursor.execute("SELECT * FROM rank_list_artists;")
79 rows = cursor.fetchall()
80
81 data = [{'name': row[0], 'num_invoices': row[1]} for row in rows]
82
83 return render(request, 'rank_list_artists.html', {'data': data})
84
85
86
87def media_type_percentage(request):
88 with connection.cursor() as cursor:
89 cursor.execute("SELECT * FROM media_type_percentage;")
90 rows = cursor.fetchall()
91
92 data = [{'name': row[0], 'num_of_tracks': row[1], 'percentage': row[2]} for row in rows]
93
94 return render(request, 'media_type_percentage.html', {'data': data})
95
96
97def most_listened_genre_per_customer(request):
98 with connection.cursor() as cursor:
99 cursor.execute("SELECT * FROM most_listened_genre_per_customer;")
100 rows = cursor.fetchall()
101
102 data = [{'first_name': row[0], 'last_name': row[1], 'most_listened_genre': row[2]} for row in rows]
103
104 return render(request, 'most_listened_genre_per_customer.html', {'data': data})
Note: See TracBrowser for help on using the repository browser.