44 lines
1.2 KiB
Python
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})
|