From 8d52c43e681cb657a797d354f27a1472356be0c1 Mon Sep 17 00:00:00 2001 From: pierre geeraert Date: Mon, 15 Jun 2026 23:01:21 +0100 Subject: [PATCH] data work inside the view --- .../migrations/0001_initial.py | 27 -------- .../0002_alter_simpsonsdata_seen.py | 18 ----- django_code/apps/random_simpsons/models.py | 4 +- django_code/apps/random_simpsons/views.py | 69 +++++++++++++++++++ django_code/django_code/urls.py | 2 + 5 files changed, 73 insertions(+), 47 deletions(-) delete mode 100644 django_code/apps/random_simpsons/migrations/0001_initial.py delete mode 100644 django_code/apps/random_simpsons/migrations/0002_alter_simpsonsdata_seen.py diff --git a/django_code/apps/random_simpsons/migrations/0001_initial.py b/django_code/apps/random_simpsons/migrations/0001_initial.py deleted file mode 100644 index 0ae7a6e..0000000 --- a/django_code/apps/random_simpsons/migrations/0001_initial.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 4.2.29 on 2026-06-11 19:50 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='SimpsonsData', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('season', models.IntegerField()), - ('episode', models.IntegerField()), - ('url', models.CharField(max_length=100)), - ('seen', models.CharField(max_length=100)), - ], - options={ - 'db_table': 'simpsons', - }, - ), - ] diff --git a/django_code/apps/random_simpsons/migrations/0002_alter_simpsonsdata_seen.py b/django_code/apps/random_simpsons/migrations/0002_alter_simpsonsdata_seen.py deleted file mode 100644 index 0796b90..0000000 --- a/django_code/apps/random_simpsons/migrations/0002_alter_simpsonsdata_seen.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.2.29 on 2026-06-11 20:31 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('simpsons', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='simpsonsdata', - name='seen', - field=models.BooleanField(), - ), - ] diff --git a/django_code/apps/random_simpsons/models.py b/django_code/apps/random_simpsons/models.py index 8af42cc..857e88b 100644 --- a/django_code/apps/random_simpsons/models.py +++ b/django_code/apps/random_simpsons/models.py @@ -3,8 +3,8 @@ from django.db import models class SimpsonsData(models.Model): season = models.IntegerField() episode = models.IntegerField() - url = models.CharField(max_length=100) + url = models.CharField(max_length=1000) seen = models.BooleanField() class Meta: - db_table = 'simpsons' \ No newline at end of file + db_table = 'episodes' \ No newline at end of file diff --git a/django_code/apps/random_simpsons/views.py b/django_code/apps/random_simpsons/views.py index dcf84f6..094eec9 100644 --- a/django_code/apps/random_simpsons/views.py +++ b/django_code/apps/random_simpsons/views.py @@ -1,8 +1,77 @@ from django.shortcuts import render +import random + # Create your views here. from django.http import HttpResponse +from django.db.models import Count from django.shortcuts import render +from apps.random_simpsons.models import SimpsonsData + def hello(request): return HttpResponse('

Hello Django!

') + +def random_episode(request): + simpsons_data_object = SimpsonsData.objects.using('simpsons_db') + maximum_number_of_seasons = SimpsonsData.objects.aggregate(unique_season=Count('season', distinct=True))['unique_season'] + + print("maximum_number_of_seasons: "+str(maximum_number_of_seasons)) + + random_seasons = random.randint(1, maximum_number_of_seasons) + print("random season: " + str(random_seasons)) + + print("--- START SIMPSONS LOG ---") + simpson_stuff = simpsons_data_object.filter(season=random_seasons) + for line in simpson_stuff: + print(line) + print("--- END SIMPSONS LOG ---") + + + # Keeps Django happy by returning a valid web response + return HttpResponse('Check your terminal log!') + +def simpsons(request): + #dev settings + #generated_db = DB_generation("192.168.88.50",32345, "django_username", "Suffrage-Moneybags-Illusion7","django") + #production settings + generated_db = DB_generation("django-db-svc",5432, "django_username", "Suffrage-Moneybags-Illusion7","django") + + cursor = generated_db.cursor() + + #get max number of season + maximum_number_of_seasons = Launch_sql_query("SELECT COUNT(DISTINCT season) as result FROM episodes;",generated_db) + + boolean_restart = True; + while (boolean_restart): + + random_seasons = random.randint(1, maximum_number_of_seasons) + print("random season: " + str(random_seasons)) + + + #get max number of epiosde for this season + maximum_number_of_episodes_query = "SELECT COUNT(url) as result FROM episodes WHERE season = " + str(random_seasons) + ";" + + maximum_number_of_episodes = Launch_sql_query(maximum_number_of_episodes_query,generated_db) + + random_episode = random.randint(1, maximum_number_of_episodes) + print("random episode: " + str(random_episode)) + + #check if the episode was already seen + check_if_already_seen_query = "select seen from episodes where season="+ str(random_seasons) +" and episode = "+ str(random_episode) +";" + if not Launch_sql_query(check_if_already_seen_query, generated_db): + boolean_restart = False + else: + print("episode "+str(random_episode)+" from season "+str(random_seasons)+" already seen") + + url_from_episode_season_query = "select url from episodes where season="+ str(random_seasons) +" and episode = "+ str(random_episode) +";" + generated_url = Launch_sql_query(url_from_episode_season_query,generated_db) + + #mark as seen + url_from_episode_season_query = "update episodes set seen = True where season=" + str(random_seasons) + " and episode = " + str(random_episode) + ";" + Launch_sql_query(url_from_episode_season_query, generated_db) + + generated_db.commit() + generated_db.close() + #return HttpResponse(str(generated_url)) + return redirect(str(generated_url)) diff --git a/django_code/django_code/urls.py b/django_code/django_code/urls.py index 4ff1d87..bb4da51 100644 --- a/django_code/django_code/urls.py +++ b/django_code/django_code/urls.py @@ -20,6 +20,7 @@ from django.urls import path from apps.cloudmanager import apps as cloudmanager_apps from apps.cloudmanager import views as cloudmanager_views from apps.random_simpsons import apps as random_simpsons +from apps.random_simpsons import views as random_simpsons_view from apps.dashboard import apps as dashboardapp from apps.dashboard import views as dashboardview from apps.kubernetes_connection import apps as kubernetes_connection @@ -35,6 +36,7 @@ urlpatterns = [ path('hello/', random_simpsons.hello), path('simpsons/', random_simpsons.simpsons), path('download_file/', random_simpsons.download_file), + path('print/', random_simpsons_view.random_episode), ################### Redirect ################### path('redirect/hello/', website_redirectionapp.hello),