用Python来生成二维码很简单,可以看 qrcode 这个包:
pip install qrcode Image
安装后就可以使用了,这个程序带了一个 qr 命令:
qr 'http://www.ziqiangxuetang.com' > test.png
下面我们看一下如何在 代码 中使用
import qrcode img = qrcode.make('http://www.tuweizhong.com') # img <qrcode.image.pil.PilImage object at 0x1044ed9d0> with open('test.png', 'w') as f: img.save(f)
这样就可以生成一个带有网址的二维码,但是这样得把文件保存到硬盘中。
我们可以用 Django 直接把生成的内容返回到网页:
以下是操作过程:
django-admin.py startproject zqxtqrcode python manage.py startapp tools
我们修改 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
添加视图函数到 zqxtqrcode/urls.py
url(r'^qrcode/(.+)$', 'tools.views.generate_qrcode', name='qrcode'),
同步数据库,打开开发服务器:
python manage.py syncdb python manage.py runserver
打开: http://127.0.0.1:8000/qrcode/http://www.tuweizhong.com
这样生成 二维码的接口就写好了 ^_^,实例采用的是返回图片流的方式,这样不用写文件到硬盘,接口调用更方便,如果要加速,可以用Django缓存来实现。
参考: https://pypi.python.org/pypi/qrcode/