转载

Python/Django 生成二维码

一,包的安装和简单使用

用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 直接把生成的内容返回到网页:

以下是操作过程:

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

Python/Django 生成二维码

这样生成 二维码的接口就写好了 ^_^,实例采用的是返回图片流的方式,这样不用写文件到硬盘,接口调用更方便,如果要加速,可以用Django缓存来实现。

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

正文到此结束
Loading...