Python及Django框架生成二維碼的方法分析

NO IMAGE

本文例項講述了Python及Django框架生成二維碼的方法。分享給大家供大家參考,具體如下:

一、包的安裝和簡單使用

1.1 用Python來生成二維碼很簡單,可以看 qrcode 這個包:


pip install qrcode

qrcode 依賴 Image 這個包:


pip install Image

如果這個包安裝有困難,可選純Python的包來實現此功能,見下文。

1.2 安裝後就可以使用了,這個程式帶了一個 qr 命令:


qr 'http://www.ziqiangxuetang.com' > test.png

1.3 下面我們看一下如何在 程式碼 中使用


import qrcode
img = qrcode.make('http://www.tuweizhong.com')
# img <qrcode.image.pil.PilImage object at 0x1044ed9d0>
with open('test.png', 'wb') as f:
img.save(f)

這樣就可以生成一個帶有網址的二維碼,但是這樣得把檔案儲存到硬碟中。

【備註】:純Python的包的使用:

安裝:


pip install git git://github.com/ojii/pymaging.git#egg=pymaging
pip install git git://github.com/ojii/pymaging-png.git#egg=pymaging-png

使用方法大致相同,命令列上:


qr --factory=pymaging "Some text" > test.png

Python中呼叫:


import qrcode
from qrcode.image.pure import PymagingImage
img = qrcode.make('Some data here', image_factory=PymagingImage)

二、Django 中使用

我們可以用 Django 直接把生成的內容返回到網頁,以下是操作過程:

2.1 新建一個 zqxtqrcode 專案,tools 應用:


django-admin.py startproject zqxtqrcode
python manage.py startapp tools

2.2 將 tools 應用 新增到 專案 settings.py 中


INSTALLED_APPS = (
...
'tools',
)

2.3 我們修改 tools/views.py


from django.http import HttpResponse
import qrcode
from cStringIO import StringIO
def generate_qrcode(request, data):
img = qrcode.make(data)
buf = StringIO()
img.save(buf)
image_stream = buf.getvalue()
response = HttpResponse(image_stream, content_type="image/png")
response['Last-Modified'] = 'Mon, 27 Apr 2015 02:05:03 GMT'
response['Cache-Control'] = 'max-age=31536000'
return response

上面對返回結果進行了處理,瀏覽器會快取圖片,提高再次載入的速度。Cache-Control 和 Last-Modified 不懂的可以看一下 HTTP協議 相關知識。

2.4 新增檢視函式到 zqxtqrcode/urls.py


url(r'^qrcode/(. )$', 'tools.views.generate_qrcode', name='qrcode'),

2.5 同步資料庫,開啟開發伺服器:


python manage.py syncdb
python manage.py runserver

參考:https://pypi.python.org/pypi/qrcode/

PS:這裡再為大家推薦一款二維碼線上生成工具供大家參考使用:

線上生成二維碼工具(加強版)
http://tools.jb51.net/transcoding/jb51qrcode

更多關於Python相關內容可檢視本站專題:《Python編碼操作技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總

希望本文所述對大家Python程式設計有所幫助。

您可能感興趣的文章:

Python二維碼生成庫qrcode安裝和使用示例python實現二維碼掃碼自動登入淘寶分享Python文字生成二維碼例項使用python呼叫zxing庫生成二維碼圖片詳解Python基於QRCode實現生成二維碼的方法【下載,安裝,呼叫等】Python之ReportLab繪製條形碼和二維碼的例項Python實現的二維碼生成小軟體Python使用QRCode模組生成二維碼例項詳解Python實現將文字生成二維碼的方法示例python生成二維碼的例項詳解