前言
Django 的学习已经有一段时间了,这段时间一直在学习Django的基础知识,今天终于是学完了(虽然很多地方听不懂).当然了,还是需要不断的练习才能更好的掌握,学习就是如此嘛.那接下来就用Django做一个简单的小实例-----生成一个二维码.
一.python生成二维码
对于python来说,二维码的生成是用qrcode这个包来完成的,所以我们要先下载这个包:
pip install qrcode
下载好后,我们先用python来实现一个简单的二维码:
import qrcode
data = '人生苦短,我用python'
image = qrcode.make(data)
with open('image/test.png','wb') as f:
image.save(f)
其中:
- data是你想要的生成二维码的内容;
- image.make(data)是生成一个qrcode对象;
- iamge.save(f)是将iamge保存在f中,并且是以.png图片形式保存;
- 生成的二维码如下:
可以用手机扫一扫,里面的内容正是"人生苦短,我用python".
接下来就利用Django在浏览器中将二维码展示出来:
二.Django中生成二维码
第一步:创建项目,app,配置项目:
(这一步就不介绍了,相信大家都会.)
(项目名称叫:zqxtqrcode,app名称叫tools)
第二步:配置url:
urls.py
"""zqxtqrcode URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.urls.conf import include
urlpatterns = [
path('admin/', admin.site.urls),
path('tools/', include('tools.url')),
]
tools/url.py:
from django.urls import path,re_path
from tools import views
urlpatterns = [
path('qrcode/',views.generate_qrcode)
]
第三步:写视图函数:
views.py:
from django.shortcuts import render,HttpResponse,redirect
from django.utils.six import BytesIO
import qrcode
# Create your views here.
def index(request):
return HttpResponse('ok')
def generate_qrcode(request):
data = '我爱python'
img = qrcode.make(data)
buf = BytesIO() # BytesIO实现了在内存中读写bytes
img.save(buf)
image_stream = buf.getvalue()
response = HttpResponse(image_stream, content_type="image/png")
return response
其中:
- img = qrcode.make(data)就是将内容生成一个qrcode对象,当然了,这个data也可以从其他地方传进来;
- BytesIO():实现了在内存中读写bytes;
- buf.getvalue():从内存中获取数据.
第四步:运行项目,打开浏览器:
这样,一个最简单的二维码就生成了!!
写在最后
本文是个人的一些学习笔记,如有侵权,请及时联系我进行删除,谢谢大家.