write down every time redirect adds something

This commit is contained in:
pierre geeraert
2026-06-21 21:21:54 +01:00
parent 6cacd1a2cf
commit e153be4b58
11 changed files with 153 additions and 57 deletions
+13 -3
View File
@@ -1,9 +1,19 @@
======= =======
# Django_kube # Django_kube
test
## Getting started ## 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. To make it easy for you to get started with GitLab, here's a list of recommended next steps.
@@ -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',
),
]
+5 -47
View File
@@ -2,52 +2,10 @@ import redis
from django.http import HttpResponse from django.http import HttpResponse
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.shortcuts import render from django.shortcuts import render
from django.apps import AppConfig
r = redis.Redis(
host='django-redis-svc',
port=6379,
db=0 # The default Redis database index
)
def hello(request):
return HttpResponse('<h1>Hello redirect!</h1>')
def redirect(request): class redirectConfig(AppConfig):
return render(request, 'website_redirection/redirect_form.html',{}) default_auto_field = 'django.db.models.BigAutoField'
name = 'apps.website_redirection'
def clearkey_process(request): label = 'redirect'
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)
@@ -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',
},
),
]
@@ -1,3 +1,8 @@
from django.db import models 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'
+1 -1
View File
@@ -16,7 +16,7 @@ Including another URLconf
""" """
from django.contrib import admin from django.contrib import admin
from django.urls import path from django.urls import path
from apps.website_redirection import apps as website_redirectionapp from apps.website_redirection import views as website_redirectionapp
urlpatterns = [ urlpatterns = [
# path('admin/', admin.site.urls), # path('admin/', admin.site.urls),
@@ -3,6 +3,60 @@ from django.shortcuts import render
# Create your views here. # Create your views here.
from django.http import HttpResponse from django.http import HttpResponse
from django.shortcuts import render from django.shortcuts import render
from .models import redirectData
import redis
import datetime
def hello(request): def hello(request):
return HttpResponse('<h1>Hello Django!</h1>') return HttpResponse('<h1>Hello Django!</h1>')
r = redis.Redis(
host='django-redis-svc',
port=6379,
db=0 # The default Redis database index
)
def hello(request):
return HttpResponse('<h1>Hello redirect!</h1>')
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)
+9 -4
View File
@@ -10,6 +10,8 @@ class ProjectDatabaseRouter:
"""Attempts to read simpsons and cloudmanager models go to their specific dbs.""" """Attempts to read simpsons and cloudmanager models go to their specific dbs."""
if model._meta.app_label == 'simpsons': if model._meta.app_label == 'simpsons':
return 'simpsons_db' return 'simpsons_db'
if model._meta.app_label == 'redirect':
return 'redirect_db'
if model._meta.app_label == 'cloudmanager': if model._meta.app_label == 'cloudmanager':
return 'cloudmanager_db' return 'cloudmanager_db'
return 'default' return 'default'
@@ -20,14 +22,16 @@ class ProjectDatabaseRouter:
return 'simpsons_db' return 'simpsons_db'
if model._meta.app_label == 'cloudmanager': if model._meta.app_label == 'cloudmanager':
return 'cloudmanager_db' return 'cloudmanager_db'
if model._meta.app_label == 'redirect':
return 'redirect_db'
return 'default' return 'default'
def allow_relation(self, obj1, obj2, **hints): def allow_relation(self, obj1, obj2, **hints):
"""Allow relations if both models are in the same database.""" """Allow relations if both models are in the same database."""
# Prevents accidental foreign key relationships across different physical DBs # Prevents accidental foreign key relationships across different physical DBs
if ( if (
obj1._meta.app_label in ['simpsons', 'cloudmanager'] or obj1._meta.app_label in ['simpsons', 'cloudmanager','redirect'] or
obj2._meta.app_label in ['simpsons', 'cloudmanager'] obj2._meta.app_label in ['simpsons', 'cloudmanager','redirect']
): ):
return obj1._meta.app_label == obj2._meta.app_label return obj1._meta.app_label == obj2._meta.app_label
return None return None
@@ -38,9 +42,10 @@ class ProjectDatabaseRouter:
return db == 'simpsons_db' return db == 'simpsons_db'
if app_label == 'cloudmanager': if app_label == 'cloudmanager':
return db == 'cloudmanager_db' return db == 'cloudmanager_db'
if app_label == 'redirect':
return 'redirect_db'
# Ensure default Django apps (auth, sessions, etc.) don't migrate into simpsons/cloudmanager # 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 False
return None return None
+9
View File
@@ -45,6 +45,7 @@ INSTALLED_APPS = [
'django_hosts', 'django_hosts',
'apps.cloudmanager.apps.CloudmanagerConfig', 'apps.cloudmanager.apps.CloudmanagerConfig',
'apps.random_simpsons.apps.RandomSimpsonsConfig', 'apps.random_simpsons.apps.RandomSimpsonsConfig',
'apps.website_redirection.apps.redirectConfig',
'import_export', 'import_export',
] ]
@@ -115,6 +116,14 @@ DATABASES = {
'HOST': os.environ.get('DB_HOST'), 'HOST': os.environ.get('DB_HOST'),
'PORT': os.environ.get('DB_PORT'), '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 = ['core.routers.ProjectDatabaseRouter']
#DATABASE_ROUTERS = [] #DATABASE_ROUTERS = []
+1 -1
View File
@@ -25,7 +25,7 @@ from apps.dashboard import views as dashboardview
from apps.kubernetes_connection import apps as kubernetes_connection from apps.kubernetes_connection import apps as kubernetes_connection
from apps.stash_management import apps as stashapp from apps.stash_management import apps as stashapp
from apps.stash_management import views as stashview 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 = [ urlpatterns = [