Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 17th, 2012  |  syntax: None  |  size: 1.44 KB  |  hits: 31  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #/project/appname/templatetags/qrcode.py
  2.  
  3. from __future__ import absolute_import
  4.  
  5. import Image
  6. import hashlib
  7. import os
  8.  
  9. from ..lib.PyQRNative import *
  10. from django import template
  11. from django.conf import settings
  12. from django.http import QueryDict
  13.  
  14. register = template.Library()
  15. QRCODESURL = os.path.join("img", "qrcode")
  16. QRCODESPATH = os.path.join(settings.STATIC_ROOT, QRCODESURL)
  17.  
  18. @register.filter(name="qrcode")
  19. def qrcode(value,args):
  20.  
  21.   query_string = QueryDict(args)
  22.   m = hashlib.md5()
  23.   m.update(value)
  24.   md5 = m.hexdigest()
  25.  
  26.   if query_string.has_key('pixel_size') :
  27.     pixel_size=int(query_string.get('pixel_size'))
  28.   else:
  29.     pixel_size=4
  30.  
  31.   if query_string.has_key('canvas_margin') :
  32.     canvas_margin=int(query_string.get('canvas_margin'))
  33.   else:
  34.     canvas_margin=10
  35.  
  36.   if query_string.has_key('border_size') :
  37.     border_size=int(query_string.get('border_size'))
  38.   else:
  39.     border_size=10
  40.  
  41.   qrCodeObject = QRCode(pixel_size, QRErrorCorrectLevel.L)
  42.   qrCodeObject.addData(value)
  43.   qrCodeObject.make()
  44.  
  45.   filename = "%s.png" % md5
  46.  
  47.   filepath = QRCODESPATH
  48.  
  49.   if not os.path.exists( filepath ):
  50.     os.makedirs(filepath)
  51.  
  52.  
  53.   qrCodeImage = qrCodeObject.makeImage(pixel_size = pixel_size, canvas_margin = canvas_margin, border_size = border_size)
  54. #  qrCodeImage = qrCodeObject.makeImage(*query_string)
  55.   qrCodeImage.save( os.path.join(filepath, filename) )
  56.  
  57.   return "%s/%s" % (QRCODESURL,filename)