Python及Django框架生成二维码的方法分析
本篇章节讲解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:这里再为大家推荐一款二维码在线生成工具供大家参考使用: 在线生成二维码工具(加强版) 更多关于Python相关内容可查看本站专题:《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》 希望本文所述对大家Python程序设计有所帮助。 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |