photobooth/photos/views.py
2018-05-21 21:55:20 +02:00

44 lines
1.2 KiB
Python

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})