Python及Django框架生成二维码的方法分析
作者:刘元涛 时间:2023-10-11 22:25:48
本文实例讲述了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/
希望本文所述对大家Python程序设计有所帮助。
来源:http://blog.csdn.net/u013510614/article/details/50195255
标签:Python,Django,生成二维码
0
投稿
猜你喜欢
教您去掉ie网页加载进度条的方法
2024-05-02 16:20:11
python中argparse模块基础及使用步骤
2023-01-26 19:21:59
全国省市区县最全最新数据表(数据来源谷歌)
2024-01-12 17:45:55
Django组件content-type使用方法详解
2023-10-01 13:54:42
mysql删除操作其实是假删除问题
2024-01-27 23:15:50
PHP预定义变量9大超全局数组用法详解
2023-06-14 10:23:47
Python模仿POST提交HTTP数据及使用Cookie值的方法
2022-05-04 04:37:35
Python深度强化学习之DQN算法原理详解
2023-03-05 12:02:51
javascript实现playfair和hill密码算法
2024-04-18 10:46:28
python_mask_array的用法
2022-05-10 06:25:27
Python list和str互转的实现示例
2022-12-26 13:26:56
用Python监控你的朋友都在浏览哪些网站?
2022-10-20 00:37:07
Python下划线5种含义代码实例解析
2023-11-19 04:25:59
浅谈Python浅拷贝、深拷贝及引用机制
2023-01-03 10:28:23
python 利用 PIL 将数组值转成图片的实现
2021-03-28 07:17:13
如何用OpenCV -python3实现视频物体追踪
2022-04-02 23:15:58
python3+django2开发一个简单的人员管理系统过程详解
2022-06-01 08:04:01
Python技法之如何用re模块实现简易tokenizer
2021-08-04 17:03:52
python实现linux下使用xcopy的方法
2022-08-16 07:52:09
python实现将视频按帧读取到自定义目录
2023-07-15 01:24:11