...
 
Commits (2)
DEBUG=False
SECRET_KEY=phaxiz3uqu4eiD4gaipoSh3Ao2Aim9jie6aS2liec1yi0ogi
ALLOWED_HOSTS=*,
\ No newline at end of file
{% load static from staticfiles %}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.responsive {
width: 100%;
max-width: 496px;
height: auto;
}
img {
display: block;
margin-left: auto;
margin-right: auto;
}
.center {
text-align: center;
}
</style>
</head>
<body>
<div class="center">
<p>
Sorry, this part of {{ domain }} is not reachable by IPv4. Please
upgrade to IPv6 and try to reach <a
href="{{ back_to_url }}">{{ domain }}</a> again.</p>
</div>
<img src="{% static 'img/ipv6onlyhosting-ungleich-deadend.jpg' %}"
alt="ipv6onlyhosting-ungleich-deadend"
class="responsive" width="600" height="400">
</body>
</html>
\ No newline at end of file
from django.http import HttpResponse
from urllib.parse import urlsplit
from django.views.generic import TemplateView
# Create your views here.
def index(request):
back_to_url = ""
if "back_to" in request.GET:
back_to_url = request.GET["back_to"]
elif 'HTTP_HOST' in request.META:
back_to_url = request.META['HTTP_HOST']
if back_to_url != "":
return HttpResponse(
"""Sorry, <a href="{domain}">this part of domain</a> is not reachable by IPv4.
Please upgrade to IPv6 and try to reach {domain} again.""".format(
domain=back_to_url
)
)
else:
return HttpResponse(
"""Sorry, this part of domain is not reachable by IPv4.
Please upgrade to IPv6 and try to reach the domain again."""
)
class IndexView(TemplateView):
template_name = 'no_ipv4_here/index.html'
def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
back_to_url = ""
if "back_to" in self.request.GET:
back_to_url = self.request.GET["back_to"]
elif 'HTTP_HOST' in self.request.META:
back_to_url = self.request.META['HTTP_HOST']
context['back_to_url'] = back_to_url
if back_to_url != "":
context['domain'] = (urlsplit(back_to_url)).netloc
else:
context['domain'] = "the domain"
return context
......@@ -62,8 +62,8 @@ ROOT_URLCONF = 'ungleich_no_ipv4_here.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
,
'DIRS': [os.path.join(BASE_DIR,
'no_ipv4_here/templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
......@@ -123,3 +123,7 @@ USE_TZ = True
# https://docs.djangoproject.com/en/2.1/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
......@@ -13,12 +13,16 @@ Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.conf.urls import url
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.urls import path
from no_ipv4_here import views
from no_ipv4_here.views import IndexView
urlpatterns = [
path('', views.index, name='index'),
url(r'^$', IndexView.as_view(), name='index'),
path('admin/', admin.site.urls),
]
urlpatterns += staticfiles_urlpatterns()