def generateQrCode(request): if request.method == 'POST': form = ToPhoneForm(request.POST) if form.is_valid(): # process data print "\n\nProcessing data..." print form.cleaned_data link_val = form.cleaned_data.get('copy_value', None) # short circuit if no value exists, this should never happen # because the form will not validate without input if not link_val: return render(request, 'tophone.html', {'form': ToPhoneForm()}) qrcode = pyqrcode.create(link_val) uuid_val = uuid() # third-party short, url-safe uuid generator img_name = "qrcoderepo/svg/%s.svg" % uuid_val print img_name qrcode.svg(img_name, scale=8) print "svg image created" return HttpResponseRedirect(uuid_val + '/') else: form = ToPhoneForm() return render(request, 'tophone.html', {'form': form})
def save_backfile(): target = os.path.join(settings.BASE_DIR, 'media', uuid() + 'jpg') with open(target, 'wb') as des: for chunk in f.chunks(): des.write(chunk) return os.path.basename(target)
def mergepic(image_file, msg, font_size, x, y): fill = (0,0,0,255) image_file = Image.open(image_file) im_w, im_h = image_file.size im0 = Image.new('RGBA', (1,1)) dw0 = ImageDraw.Draw(im0) font = ImageFont.truetype(os.path.join(settings.BASE_DIR,'wt014.ttf'), font_size) fn_w, fn_h = dw0.textsize(msg, font=font) im = Image.new('RGBA', (fn_w, fn_h), (255,0,0,0)) dw = ImageDraw.Draw(im) dw.text((0,0), msg, font=font, fill=fill) image_file.paste(im, (x, y), im) saved_filename = uuid()+'.jpg' image_file.save(os.path.join(settings.BASE_DIR,"media", saved_filename)) return saved_filename
def mergepic(image_file, msg, font_size, x, y): fill = (0,0,0,255) try: image_file = Image.open(image_file) except: image_file = Image.open(os.path.join(settings.BASE_DIR, 'static/backimages/back1.jpg')) im_w, im_h = image_file.size im0 = Image.new('RGBA', (1,1)) dw0 = ImageDraw.Draw(im0) font = ImageFont.truetype(os.path.join(settings.BASE_DIR,'wt014.ttf'), font_size) fn_w, fn_h = dw0.textsize(msg, font=font) im = Image.new('RGBA', (fn_w, fn_h), (255,0,0,0)) dw = ImageDraw.Draw(im) dw.text((0,0), msg, font=font, fill=fill) image_file.paste(im, (x, y), im) saved_filename = uuid()+'.jpg' image_file.save(os.path.join(settings.BASE_DIR,"media", saved_filename)) return saved_filename
def add_article(request): if request.method == 'POST': form_obj = CreateArticleForm(request.POST, request.FILES) if form_obj.is_valid(): saved_data = dict() saved_data['title'] = form_obj.cleaned_data.get('title') raw_desc = form_obj.cleaned_data.get("desc") saved_data['user'] = request.user file_obj = form_obj.cleaned_data.get("image") if file_obj: file_uuid_name = uuid() file_ext = mimetypes.guess_extension(file_obj.content_type) file_name = "{}{}".format(file_uuid_name, file_ext) saved_data['prev_image'] = file_name filepath = path.join(settings.MEDIA_ROOT, 'image', file_name) with open(filepath, "wb") as f: for chunk in file_obj.chunks(): f.write(chunk) from bs4 import BeautifulSoup bs = BeautifulSoup(raw_desc, "html.parser") saved_data['desc'] = bs.text[0:225] + "..." if len(bs.text) > 225 else bs.text # фильтруем опасные теги for tag in bs.find_all(): if tag.name in ['script', 'link']: tag.decompose() article_obj = Article.objects.create(**saved_data) ArticleDetail.objects.create(content=str(bs), article=article_obj, image=saved_data.get("prev_image", 'not_found.png')) return redirect("blog:home") else: return render(request, 'add_article.html', {'form_obj': form_obj, "title": "Добавить статью"}) form_obj = CreateArticleForm() return render(request, 'add_article.html', {'form_obj': form_obj, "title": "Добавить статью"})
def save_backfile(f): target = os.path.join(settings.BASE_DIR,"media", uuid()+'.jpg') with open(target, 'wb') as des: for chunk in f.chunks(): des.write(chunk) return os.path.basename(target)