Açıklama Yok

views.py 1023B

123456789101112131415161718192021222324252627
  1. from base64 import b64encode
  2. from datetime import datetime
  3. from django.http import HttpResponse, HttpResponseBadRequest
  4. from django.shortcuts import render
  5. from django.views import View
  6. from .forms import CrosswordForm
  7. from .xword import extract_crossword
  8. class HomeView(View):
  9. def get(self, request, *args, **kwargs):
  10. return render(request, 'home/index.html', {'form': CrosswordForm()})
  11. def post(self, request, *args, **kwargs):
  12. form = CrosswordForm(request.POST, request.FILES)
  13. if not form.is_valid():
  14. return HttpResponseBadRequest('Invalid form data')
  15. image, warnings = extract_crossword(
  16. form.cleaned_data['file'].temporary_file_path(),
  17. filter_colours=False
  18. )
  19. return render(request, 'home/output.html', {
  20. 'warnings': warnings,
  21. 'image_file_name': 'xword_{}.png'.format(datetime.now().strftime('%Y%m%d_%H%M%S')),
  22. 'image_url': 'data:image/png;base64,' + b64encode(image).decode()
  23. })