import io import os from PIL import Image from django.conf import settings from django.core.files.storage import default_storage from django.http import JsonResponse, Http404, HttpResponse from django.shortcuts import render from django.utils.datetime_safe import datetime from django.views.decorators.http import require_POST from photos.models import Photo def index(request): return render(request, 'index.html') def show(request, pk): try: photo = Photo.objects.get(pk=pk) with open(photo.photo.path, "rb") as f: return HttpResponse(f.read(), content_type="image/jpeg") except Photo.DoesNotExist: raise Http404() def photo_list(request): return JsonResponse([{ 'id': p.id, 'created_at': str(p.added_on), 'updated_at': str(p.added_on), 'url': p.get_absolute_url(), } for p in Photo.objects.all().order_by('-id')], safe=False) @require_POST def file_upload(request): save_path = os.path.join(settings.MEDIA_ROOT, 'photos', "{}.jpg".format(datetime.now())) path = default_storage.save(save_path, request) photo = Photo.objects.create(photo=path) return JsonResponse({'picture': photo.id})