Login

QRCode template tag

Author:
bradbeattie
Posted:
November 22, 2012
Language:
Python
Version:
Not specified
Tags:
qrcode
Score:
0 (after 0 ratings)

I had a hell of a time getting most QR code stuffs out there working with Django. Many projects, but problems here and problems there. The only additional code you'll need for this is to "pip install qrcode". After that, you're free to <img src="{% qrcode_datauri "http://localhost:8000/" %}" />.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from base64 import b64encode
from django.template.base import Library
import cStringIO
import qrcode


register = Library()


@register.simple_tag
def qrcode_datauri(data, pixel_size=5, border_pixels=1, error_correction="H"):
    qrcode_object = qrcode.QRCode(
        error_correction=getattr(
            qrcode.constants,
            "ERROR_CORRECT_%s" % error_correction,
            "H" 
        ),  
        box_size=max(1, min(100, pixel_size)),
        border=max(1, min(100, border_pixels)),
    )   
    qrcode_object.add_data(data)
    qrcode_object.make(fit=True)
    qrcode_image = qrcode_object.make_image()
    byte_stream = cStringIO.StringIO()
    qrcode_image.save(byte_stream)
    datauri = "data:image/png;base64,%s" % b64encode(byte_stream.getvalue())
    byte_stream.close()
    return datauri

More like this

  1. Handling choices the right way by mallipeddi 7 years, 3 months ago
  2. Update Related Object Fields by johnboxall 6 years, 2 months ago
  3. localsettings by elpaso66 5 years ago
  4. Capture template output as a variable by kcarnold 7 years, 1 month ago
  5. Django code generator by jansta 4 years, 5 months ago

Comments

Please login first before commenting.