This commit is contained in:
Anna Sudnitsina 2017-10-10 18:45:56 +03:00
commit 1af80897ac
7 changed files with 46 additions and 30 deletions

10
docker/Dockerfile Normal file
View File

@ -0,0 +1,10 @@
FROM alpine
RUN apk update && apk add python py2-pip py-gunicorn py-pillow py2-futures
RUN pip install django==1.11.6
COPY . /app
RUN cd /app && python manage.py migrate
ENTRYPOINT cd /app && gunicorn --threads 2 imagehost.wsgi:application --bind 0.0.0.0:8080 -t 60 --max-requests 1000

View File

@ -2,10 +2,10 @@ from PIL import Image
def resize_image(fh, img_prop):
im = Image.open(fh)
# size = 100, 100
# size = 100, 100
im.thumbnail(img_prop['size'])
print img_prop['size']
# im.thumbnail(size)
print(img_prop['size'])
# im.thumbnail(size)
thumb_name = img_prop['dest'] + '/thumb_' + img_prop['name']
im.save(thumb_name)

View File

@ -12,6 +12,6 @@ import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "imagehost.settings")
application = get_wsgi_application()

View File

@ -2,6 +2,6 @@ from django.contrib import admin
from .models import Post
admin.site.register(Post
)
admin.site.register(Post)
# Register your models here.

View File

@ -1,13 +1,16 @@
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
from django import forms
from .models import Post
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ('name', 'file')
class DeleteForm(forms.ModelForm):
class Meta:

View File

@ -2,13 +2,14 @@
from __future__ import unicode_literals
from django.db import models
from django.utils import timezone
#from ih import images
# from ih import images
import os
class Post(models.Model):
name = models.CharField(max_length=30, blank=True)
file = models.FileField(upload_to='images')
# thumb = models.CharField(max_length=32, null=True, blank=True)
# thumb = models.CharField(max_length=32, null=True, blank=True)
def publish(self):
self.published_date = timezone.now()
@ -17,24 +18,23 @@ class Post(models.Model):
def __unicode__(self):
return self.name
def thumb_name(self):
x = os.path.split(self.file.name)[-1]
return '/thumb_' + x
def thumb_name(self):
x = os.path.split(self.file.name)[-1]
return '/thumb_' + x
thumb_name = property(thumb_name)
def orig_name(self):
x = os.path.split(self.file.name)[-1]
x = os.path.split(self.file.name)[-1]
return x
orig_name = property(orig_name)
'''def resize_image(self.file):
path, file_long = os.path.split(self.file)
im=image.open(file_long)
size = 128, 128
im.thumbnail(size)

View File

@ -7,6 +7,8 @@ from django.shortcuts import redirect
from ih import files, images
#from django.views.decorators.csrf import requires_csrf_token
from django.contrib.auth.decorators import login_required
from ih import images
from django.views.decorators.csrf import requires_csrf_token
'''def create_thumbnail(request):
# Get file from <InMemoryUploadedFile>
@ -32,12 +34,12 @@ from django.contrib.auth.decorators import login_required
def create_thumb_from_file(filename):
orig_file = 'imagehost/media/images/' + filename
#f = str(filename)
#print(filename)
#print f
# Create thumbnail
print("DEBUG: Resizing image " + orig_file)
orig_file = 'imagehost/media/images/' + filename
# f = str(filename)
# print(filename)
# print f
# Create thumbnail
print("DEBUG: Resizing image " + orig_file)
thumb_name = images.resize_image(orig_file, {
'name': filename,
'size': [300, 300],
@ -45,21 +47,20 @@ def create_thumb_from_file(filename):
}
)
return thumb_name
return thumb_name
@login_required(login_url="/login")
def image_new(request):
if request.method == "POST":
form = PostForm(request.POST, request.FILES)
if form.is_valid():
# thumb_name = create_thumbnail(request)
# thumb_name = create_thumbnail(request)
post = form.save(commit=False)
post.save()
#print("FILE: ", post.file)
print post.orig_name
create_thumb_from_file(post.orig_name)
# print("FILE: ", post.file)
print(post.orig_name)
create_thumb_from_file(post.orig_name)
return redirect('imagehosting.views.image_detail', pk=post.id)
else:
form = PostForm()
@ -74,9 +75,10 @@ def image_detail(request, pk):
def all_posts(request):
all = Post.objects.order_by('-pk')
page = request.POST.get("page")
# page = request.POST.get("page")
return render(request, 'imagehosting/all.html', {'all': all})
def carousel(request):
return render(request, 'imagehosting/carousel.html', {'all': Post.objects.all()})
@ -86,10 +88,11 @@ def delete_post(request, pk):
post_to_delete = get_object_or_404(Post, pk=pk)
if request.method == 'GET':
form = DeleteForm(request.POST, instance=post_to_delete)
if form.is_valid(): # checks CSRF
if form.is_valid(): # checks CSRF
if not request.user.is_authenticated():
return HttpResponseRedirect('/admin')
post_to_delete.delete()
return redirect('imagehosting.views.all_posts')
#return render(request, 'imagehosting/delete.html', {'form': form})
return render(request, 'imagehosting/delete.html', {'form': form})