Skip to main content

Django application that provides simple templatetags to generate QR-codes

Project description

Django QR


Django QR is a simple Django application that provides some templatetags that allows to include automatically QR codes on the Django site.


Once is installed from PyPI, you just need to add it to your settings as ‘qrcode’:

INSTALLED_APPS = (..., 'qrcode', ...)


Its usage is very simple. You just need to use the templatetag as follows:

{% load qr_tags %}


{% qr_from_text "text" "size" %}
{% qr_from_mail "mail_address" "size" %}


  • Size is not mandatory, and defines the dimensions of the QR code as following: ‘s’ (120x120 pixels), ‘m’ (230x230 pixels), ‘l’ (350x350) or an integer with the size that you want to give to the QR-code (like 40, 80 or 500). Any other option will be ignored and will use ‘m’ as default.

  • qr_from_mail tag just add a simple “mailto:” at the beggining, because some qr scanners can detect that as an email address in order to send it an email.

QR-code for contact information

There’s also a templatetag to render a QR-code that allows to store some contact information, such as name, phone number, email address or our company name.

Its usage is similiar to the basics:

{% qr_from contact contact "size" %}


  • Size is the same as previosly

  • contact should be a Python dictionary (or any other hash structure) that could contain the following elements:

  • name - Complete name

  • phone_number

  • email

  • url - some url address, your blog or personal webpage

  • company

For instance, you could create a contact dictionary like the following:

contact = {
    'name': 'Pablo Recio',
    'phone_number': '00000000',
    'email': '',
    'url': '',
    'company': 'Zocolab',

QR-code of Django object URL

Another templatetag can be used to render a QR-code that links to a Django object URL. As the previous templatetags, the usage is very simple:


{% qr_from_object object “size” %}


  • Size is the same as previosly

  • Object it’s an instance of a Django model, that must implements the ‘get_absolute_url’ method in order to get the object’s address.

Change service for QR generating

By default, django-qr uses Google Chart for generating the QR-code. But this can be changed with a new template. The default template qrcode/qr_tag.html contains the following:

<img src="{{ size }}x{{ size }}&chl={{ text }}" />

But if you want to use some other service, like qrserver, you just need to add a new template in your templates dirs with the following code:

<img src="{{ size }}x{{ size }}&data={{ text }}" />

The idea is that your qrcode/qr_tag.html contains an img tag and the call to the service that you want, mantaining the variables size and data.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-qrcode-0.3.tar.gz (4.2 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page