Changeset bfca48b for music


Ignore:
Timestamp:
04/28/25 17:28:23 (3 weeks ago)
Author:
ManuelTrajcev <manueltrajcev7@…>
Branches:
master
Children:
17ed1da
Parents:
0e077ef
Message:

+4 views with controlers and templates

Location:
music
Files:
4 added
4 edited

Legend:

Unmodified
Added
Removed
  • music/urls.py

    r0e077ef rbfca48b  
    55    path('album/', views.album_list, name='album_list'),
    66    path('artist/', views.artist_list, name='artist_list'),
    7     path('artist/avg_track_duration', views.avg_track_duration, name='avg_track_duration'),
     7    path('artist/avg-track-duration', views.avg_track_duration, name='avg_track_duration'),
     8    path('artist/avg-track-price', views.avg_price_per_artist, name='avg_track_price'),
     9    path('artist/most-popular', views.rank_list_artists, name='rank_list_artists'),
    810    path('track/', views.track_list, name='track_list'),
    9     path('track/per_genre', views.tracks_count_per_genre, name='track_count_per_genre'),
    10     path('customer/rank_list', views.rank_list_most_active_customers, name='rank_list_most_active_customers'),
     11    path('customer/genre', views.most_listened_genre_per_customer, name='most_listened_genre_per_customer'),
     12    path('media-type/percentage', views.media_type_percentage, name='media_type_percentage'),
     13    path('track/per-genre', views.tracks_count_per_genre, name='track_count_per_genre'),
     14    path('customer/rank-list', views.rank_list_most_active_customers, name='rank_list_most_active_customers'),
    1115]
  • music/views.py

    r0e077ef rbfca48b  
    6262
    6363    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 TracChangeset for help on using the changeset viewer.