diff --git a/README.md b/README.md
index a946acd..1f19a14 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,19 @@
=======
# Django_kube
-test
-
-
## Getting started
+### Database migration
+
+```
+python django_code/manage.py makemigrations
+python django_code/manage.py makemigrations redirect
+python django_code/manage.py makemigrations cloudmanager
+python django_code/manage.py makemigrations simpsons
+
+python django_code/manage.py migrate
+python django_code/manage.py migrate --database=cloudmanager_db
+python django_code/manage.py migrate --database=simpsons_db
+python django_code/manage.py migrate --database=redirect_db
+```
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
diff --git a/django_code/apps/random_simpsons/migrations/0003_remove_book_author_remove_book_categories_and_more.py b/django_code/apps/random_simpsons/migrations/0003_remove_book_author_remove_book_categories_and_more.py
new file mode 100644
index 0000000..a65e65a
--- /dev/null
+++ b/django_code/apps/random_simpsons/migrations/0003_remove_book_author_remove_book_categories_and_more.py
@@ -0,0 +1,30 @@
+# Generated by Django 4.2.29 on 2026-06-21 20:11
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('simpsons', '0002_author_category_book'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='book',
+ name='author',
+ ),
+ migrations.RemoveField(
+ model_name='book',
+ name='categories',
+ ),
+ migrations.DeleteModel(
+ name='Author',
+ ),
+ migrations.DeleteModel(
+ name='Book',
+ ),
+ migrations.DeleteModel(
+ name='Category',
+ ),
+ ]
diff --git a/django_code/apps/website_redirection/apps.py b/django_code/apps/website_redirection/apps.py
index 25d58d5..e11a364 100644
--- a/django_code/apps/website_redirection/apps.py
+++ b/django_code/apps/website_redirection/apps.py
@@ -2,52 +2,10 @@ import redis
from django.http import HttpResponse
from django.http import HttpResponseRedirect
from django.shortcuts import render
-
-r = redis.Redis(
- host='django-redis-svc',
- port=6379,
- db=0 # The default Redis database index
-)
-
-def hello(request):
- return HttpResponse('
Hello redirect!
')
+from django.apps import AppConfig
-def redirect(request):
- return render(request, 'website_redirection/redirect_form.html',{})
-
-def clearkey_process(request):
- key = request.GET.get('key')
- r.delete(key)
- return 0
-
-def redirect_process(request):
- key = request.GET.get('key')
- value = request.GET.get('value')
- key = key.lower()
-
- r.set(key, value)
-
- text_generated = "successfully set "+value+" to "+key
- return HttpResponse(text_generated, content_type="text/plain")
-
-def display_key(request,key):
- value = r.get(key)
- value_extracted = str(value.decode())
- text_generated = key+" is set to "+value_extracted
- return HttpResponse(text_generated, content_type="text/plain")
-
-
-def redirect_to_key(request,key):
- value = r.get(key)
- if value == None:
- icon_url = r.get('icon')
- if icon_url == None:
- icon_url = "https://cdn-icons-png.flaticon.com/512/6402/6402576.png"
- print(key+" is not setup, displaying default page")
- return render(request, 'website_redirection/blank_page.html', {'title': key,'icon_url':icon_url})
- else:
- value_extracted = str(value.decode('utf-8'))
- print(key+" is setup to : "+value_extracted)
- print(value_extracted)
- return HttpResponseRedirect(value_extracted)
\ No newline at end of file
+class redirectConfig(AppConfig):
+ default_auto_field = 'django.db.models.BigAutoField'
+ name = 'apps.website_redirection'
+ label = 'redirect'
diff --git a/django_code/apps/website_redirection/migrations/0001_initial.py b/django_code/apps/website_redirection/migrations/0001_initial.py
new file mode 100644
index 0000000..ff716eb
--- /dev/null
+++ b/django_code/apps/website_redirection/migrations/0001_initial.py
@@ -0,0 +1,25 @@
+# Generated by Django 4.2.29 on 2026-06-21 20:05
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='redirectData',
+ fields=[
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('url', models.CharField(max_length=1000)),
+ ('seenDate', models.DateField(blank=True, null=True, verbose_name='Published')),
+ ],
+ options={
+ 'db_table': 'redirect',
+ },
+ ),
+ ]
diff --git a/django_code/apps/website_redirection/migrations/__init__.py b/django_code/apps/website_redirection/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/django_code/apps/website_redirection/models.py b/django_code/apps/website_redirection/models.py
index 71a8362..2762f32 100644
--- a/django_code/apps/website_redirection/models.py
+++ b/django_code/apps/website_redirection/models.py
@@ -1,3 +1,8 @@
from django.db import models
-# Create your models here.
+class redirectData(models.Model):
+ url = models.CharField(max_length=1000)
+ seenDate = models.DateField('Published', blank=True, null=True)
+
+ class Meta:
+ db_table = 'redirect'
diff --git a/django_code/apps/website_redirection/urls.py b/django_code/apps/website_redirection/urls.py
index b04a85e..f44b152 100644
--- a/django_code/apps/website_redirection/urls.py
+++ b/django_code/apps/website_redirection/urls.py
@@ -16,7 +16,7 @@ Including another URLconf
"""
from django.contrib import admin
from django.urls import path
-from apps.website_redirection import apps as website_redirectionapp
+from apps.website_redirection import views as website_redirectionapp
urlpatterns = [
# path('admin/', admin.site.urls),
diff --git a/django_code/apps/website_redirection/views.py b/django_code/apps/website_redirection/views.py
index dcf84f6..9df02e6 100644
--- a/django_code/apps/website_redirection/views.py
+++ b/django_code/apps/website_redirection/views.py
@@ -3,6 +3,60 @@ from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
from django.shortcuts import render
+from .models import redirectData
+import redis
+import datetime
def hello(request):
return HttpResponse('Hello Django!
')
+
+
+
+r = redis.Redis(
+ host='django-redis-svc',
+ port=6379,
+ db=0 # The default Redis database index
+)
+
+def hello(request):
+ return HttpResponse('Hello redirect!
')
+
+
+def redirect(request):
+ return render(request, 'website_redirection/redirect_form.html',{})
+
+def clearkey_process(request):
+ key = request.GET.get('key')
+ r.delete(key)
+ return 0
+
+def redirect_process(request):
+ key = request.GET.get('key')
+ value = request.GET.get('value')
+ key = key.lower()
+
+ r.set(key, value)
+ redirectData.create(url=key,seenDate=datetime.datetime.now())
+ text_generated = "successfully set "+value+" to "+key
+ return HttpResponse(text_generated, content_type="text/plain")
+
+def display_key(request,key):
+ value = r.get(key)
+ value_extracted = str(value.decode())
+ text_generated = key+" is set to "+value_extracted
+ return HttpResponse(text_generated, content_type="text/plain")
+
+
+def redirect_to_key(request,key):
+ value = r.get(key)
+ if value == None:
+ icon_url = r.get('icon')
+ if icon_url == None:
+ icon_url = "https://cdn-icons-png.flaticon.com/512/6402/6402576.png"
+ print(key+" is not setup, displaying default page")
+ return render(request, 'website_redirection/blank_page.html', {'title': key,'icon_url':icon_url})
+ else:
+ value_extracted = str(value.decode('utf-8'))
+ print(key+" is setup to : "+value_extracted)
+ print(value_extracted)
+ return HttpResponseRedirect(value_extracted)
\ No newline at end of file
diff --git a/django_code/core/routers.py b/django_code/core/routers.py
index bc98c23..4876caa 100644
--- a/django_code/core/routers.py
+++ b/django_code/core/routers.py
@@ -10,6 +10,8 @@ class ProjectDatabaseRouter:
"""Attempts to read simpsons and cloudmanager models go to their specific dbs."""
if model._meta.app_label == 'simpsons':
return 'simpsons_db'
+ if model._meta.app_label == 'redirect':
+ return 'redirect_db'
if model._meta.app_label == 'cloudmanager':
return 'cloudmanager_db'
return 'default'
@@ -20,14 +22,16 @@ class ProjectDatabaseRouter:
return 'simpsons_db'
if model._meta.app_label == 'cloudmanager':
return 'cloudmanager_db'
+ if model._meta.app_label == 'redirect':
+ return 'redirect_db'
return 'default'
def allow_relation(self, obj1, obj2, **hints):
"""Allow relations if both models are in the same database."""
# Prevents accidental foreign key relationships across different physical DBs
if (
- obj1._meta.app_label in ['simpsons', 'cloudmanager'] or
- obj2._meta.app_label in ['simpsons', 'cloudmanager']
+ obj1._meta.app_label in ['simpsons', 'cloudmanager','redirect'] or
+ obj2._meta.app_label in ['simpsons', 'cloudmanager','redirect']
):
return obj1._meta.app_label == obj2._meta.app_label
return None
@@ -38,9 +42,10 @@ class ProjectDatabaseRouter:
return db == 'simpsons_db'
if app_label == 'cloudmanager':
return db == 'cloudmanager_db'
-
+ if app_label == 'redirect':
+ return 'redirect_db'
# Ensure default Django apps (auth, sessions, etc.) don't migrate into simpsons/cloudmanager
- if db in ['simpsons_db', 'cloudmanager_db']:
+ if db in ['simpsons_db', 'cloudmanager_db','redirect_db']:
return False
return None
\ No newline at end of file
diff --git a/django_code/core/settings.py b/django_code/core/settings.py
index ca551ca..a9b1b2c 100644
--- a/django_code/core/settings.py
+++ b/django_code/core/settings.py
@@ -45,6 +45,7 @@ INSTALLED_APPS = [
'django_hosts',
'apps.cloudmanager.apps.CloudmanagerConfig',
'apps.random_simpsons.apps.RandomSimpsonsConfig',
+ 'apps.website_redirection.apps.redirectConfig',
'import_export',
]
@@ -115,6 +116,14 @@ DATABASES = {
'HOST': os.environ.get('DB_HOST'),
'PORT': os.environ.get('DB_PORT'),
},
+ 'redirect_db': {
+ 'ENGINE': 'django.db.backends.postgresql',
+ 'NAME': 'redirect',
+ 'USER': os.environ.get('DB_USERNAME'),
+ 'PASSWORD': os.environ.get('DB_PASSWORD'),
+ 'HOST': os.environ.get('DB_HOST'),
+ 'PORT': os.environ.get('DB_PORT'),
+ },
}
DATABASE_ROUTERS = ['core.routers.ProjectDatabaseRouter']
#DATABASE_ROUTERS = []
diff --git a/django_code/core/urls.py b/django_code/core/urls.py
index 7a52c57..1efd1b5 100644
--- a/django_code/core/urls.py
+++ b/django_code/core/urls.py
@@ -25,7 +25,7 @@ from apps.dashboard import views as dashboardview
from apps.kubernetes_connection import apps as kubernetes_connection
from apps.stash_management import apps as stashapp
from apps.stash_management import views as stashview
-from apps.website_redirection import apps as website_redirectionapp
+from apps.website_redirection import views as website_redirectionapp
urlpatterns = [