diff --git a/django_web_galleries/django_web_galleries/urls.py b/django_web_galleries/django_web_galleries/urls.py
index 244880e..3717e70 100644
--- a/django_web_galleries/django_web_galleries/urls.py
+++ b/django_web_galleries/django_web_galleries/urls.py
@@ -14,8 +14,9 @@ Including another URLconf
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
-from django.urls import path
+from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
+ path('', include('web_galleries.urls'))
]
diff --git a/django_web_galleries/web_galleries/templates/global.html b/django_web_galleries/web_galleries/templates/global.html
new file mode 100644
index 0000000..cf9376c
--- /dev/null
+++ b/django_web_galleries/web_galleries/templates/global.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ Web Gallery
+
+
+
+
+
+
+
+ {% block content %}
+ {% endblock content %}
+
+
+
+
+
\ No newline at end of file
diff --git a/django_web_galleries/web_galleries/templates/list_images/image_list.html b/django_web_galleries/web_galleries/templates/list_images/image_list.html
new file mode 100644
index 0000000..8df5b74
--- /dev/null
+++ b/django_web_galleries/web_galleries/templates/list_images/image_list.html
@@ -0,0 +1,13 @@
+{% extends '../global.html' %}
+
+{% load responsive_images %}
+
+{% block content %}
+
+
+ {% for image in images %}
+
+ {% endfor %}
+
+
+{% endblock content %}
\ No newline at end of file
diff --git a/django_web_galleries/web_galleries/templates/upload_image/upload.html b/django_web_galleries/web_galleries/templates/upload_image/upload.html
new file mode 100644
index 0000000..494a6ce
--- /dev/null
+++ b/django_web_galleries/web_galleries/templates/upload_image/upload.html
@@ -0,0 +1,9 @@
+{% extends '../global.html' %}
+
+{% block content %}
+
+{% endblock content %}
diff --git a/django_web_galleries/web_galleries/urls.py b/django_web_galleries/web_galleries/urls.py
new file mode 100644
index 0000000..0ebc763
--- /dev/null
+++ b/django_web_galleries/web_galleries/urls.py
@@ -0,0 +1,19 @@
+from django.urls import path
+from django.conf import settings
+from django.conf.urls.static import static
+
+from .views import (
+ ImageUploadView,
+ PublicImageListView
+)
+
+urlpatterns = [
+ path('', PublicImageListView.as_view(), name='home'),
+ path('upload/', ImageUploadView.as_view(), name='upload_image')
+]
+
+if settings.DEBUG:
+ urlpatterns += static(
+ settings.MEDIA_URL,
+ document_root=settings.MEDIA_ROOT
+ )
\ No newline at end of file
diff --git a/django_web_galleries/web_galleries/views.py b/django_web_galleries/web_galleries/views.py
index 91ea44a..7ebce7c 100644
--- a/django_web_galleries/web_galleries/views.py
+++ b/django_web_galleries/web_galleries/views.py
@@ -1,3 +1,55 @@
-from django.shortcuts import render
+import secrets
-# Create your views here.
+from django.views import View
+from django.views.generic.list import ListView
+from django.shortcuts import render, redirect
+from django.urls import reverse
+
+from .forms import ImageUploadForm
+from .models import Image
+
+class ImageUploadView(View):
+ def get(self, request):
+ form = ImageUploadForm()
+ return render(
+ request,
+ 'upload_image/upload.html',
+ {
+ 'form': form
+ }
+ )
+
+ def post(self, request):
+ form = ImageUploadForm(
+ request.POST,
+ request.FILES
+ )
+
+ if form.is_valid():
+ image = form.save(commit=False)
+
+ if image.private:
+ image.access_code = secrets.token_hex(32)
+
+ image.save()
+ return redirect(
+ reverse('home')
+ )
+ else:
+ form = ImageUploadForm()
+ return render(
+ request,
+ 'upload_image/upload.html',
+ {
+ 'form': form
+ }
+ )
+
+class PublicImageListView(ListView):
+ model = Image
+ paginate_by = 20
+ context_object_name = 'images'
+ template_name = 'list_images/image_list.html'
+
+ def get_queryset(self):
+ return Image.objects.all().filter(private=False)