本文实例讲述了Python及Django框架生成二维码的方法。分享给大家供大家参考,具体如下:
一、包的安装和简单使用
1.1 用Python来生成二维码很简单,可以看 qrcode 这个包:
1
|
pip install qrcode
|
qrcode 依赖 Image 这个包:
1
|
pip install Image
|
如果这个包安装有困难,可选纯Python的包来实现此功能,见下文。
1.2 安装后就可以使用了,这个程序带了一个 qr 命令:
1
|
qr 'http://www.ziqiangxuetang.com' > test.png
|
1.3 下面我们看一下如何在 代码 中使用
1
2
3
4
5
|
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的包的使用:
安装:
1
2
|
pip install git + git: / / github.com / ojii / pymaging.git #egg=pymaging
pip install git + git: / / github.com / ojii / pymaging - png.git #egg=pymaging-png
|
使用方法大致相同,命令行上:
1
|
qr - - factory = pymaging "Some text" > test.png
|
Python中调用:
1
2
3
|
import qrcode
from qrcode.image.pure import PymagingImage
img = qrcode.make( 'Some data here' , image_factory = PymagingImage)
|
二、Django 中使用
我们可以用 Django 直接把生成的内容返回到网页,以下是操作过程:
2.1 新建一个 zqxtqrcode 项目,tools 应用:
1
2
|
django - admin.py startproject zqxtqrcode
python manage.py startapp tools
|
2.2 将 tools 应用 添加到 项目 settings.py 中
1
2
3
4
|
INSTALLED_APPS = (
...
'tools' ,
)
|
2.3 我们修改 tools/views.py
1
2
3
4
5
6
7
8
9
10
11
12
|
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
1
|
url(r '^qrcode/(.+)$' , 'tools.views.generate_qrcode' , name = 'qrcode' ),
|
2.5 同步数据库,打开开发服务器:
1
2
|
python manage.py syncdb
python manage.py runserver
|
参考:https://pypi.python.org/pypi/qrcode/
希望本文所述对大家Python程序设计有所帮助。
原文链接:http://blog.csdn.net/u013510614/article/details/50195255