Django如何生成二维码实现扫码浏览?
Django如何生成二维码?
网上很多教程都是依赖于QR CODE的,现在这种方法已经不好用了,byteio在django3中也删了,但是有一新的插件“django-qr-code”使用起来更加方便,今天就把方法分享一下:
步骤
1.安装依赖包
pip install django-qr-code
2.在django,你项目的settings中,安装app
打开你项目的setting,找到INSTALLED_APPS ,在这里新加一条'qr_code'
例:
INSTALLED_APPS = (
...,
'qr_code',
)
3.在你打算渲染的html文档中,导入模板
首先当前模板引用标签:{% load qr_code %}
ps:如果你的html用到了继承,这句话一定要放到继承下面,比如
{% extends 'detail/base.html' %}
{% load qr_code %}
4.html页面导入一个标签
渲染出来是svg标签:
{% qr_from_text "Hello World!" size="T" %}
渲染出来是img标签:
{% qr_from_text "Hello World!" size="m" image_format="png" error_correction="L" %}
5. 二维码大小:size
{% qr_from_text 'soogor' size="10" %}
size可以直接用下面的英文字线,如
size="m"
- t 或 T:微小(值:6)
- s 或 S:小(值:12)
- m 或 M:中等(值:18)
- l 或 L:大(值:30)
- h 或 H:巨大(值:48)
对于 PNG 图像格式,大小单位以像素为单位,而对于 SVG 格式,大小单位为 1 mm。
6.version参数
version该参数是从 1 到 40 的整数,用于控制 QR 码矩阵的大小。设置为“无”可自动确定此值。最小的版本 1 是 21 x 21 矩阵。最大的版本 40 是 177 x 177 矩阵。尺寸每侧增加 4 个模块。
通过上面这两个参数大家就可以尝试调整这两个参数来调整大小了
7。{%%20qr_url_from_text%20%}
{%%20qr_url_from_text%20"Hello World!" %}
在官方教程当中说明使用下面代码
<img src="{%%20qr_url_from_text%20"Hello World!" %}" alt="Hello World!">
可以得到一个图片链接,但是尝试当中提示”q_code“没有这个命名空间,鉴于项目的推进也没有深入研究
8。二维码颜色:
{% qr_from_text '' size="2" version=3 light_color='#7a6e6e' dark_color='ffffff' %}
light_color:为背景颜色,颜色值可以作为元组(R, G, B)
,作为Web颜色名称(如“red”)或十六进制值#RRGGBB
(即“#085A75”)。None为透明
dark_color:为二维码黑点的颜色,颜色值同上,None为透明
官方教程当中还批出有批模块样式:
dark_color
设置深色模块的(默认)颜色。
light_color
设置光源模块的(默认)颜色。
alignment_dark_color
设置深色对齐图案模块的颜色。
微型QR码没有对齐模式。
alignment_light_color
设置灯光对齐图案模块的颜色。
微型QR码没有对齐模式。
dark_module_color
设置深色模块的颜色。
微型QR码没有黑暗模块。
data_dark_color
设置深色数据模块的颜色。
data_light_color
设置光源数据模块的颜色。
finder_dark_color
设置取景器图案的深色模块的颜色。
finder_light_color
设置取景器图案的光源模块的颜色。
format_dark_color
设置格式信息的深色模块的颜色。
format_light_color
设置格式信息的光源模块的颜色。
quiet_zone_color
设置安静区域的颜色。
separator_color
设置分隔符的颜色。
timing_dark_color
设置时序模式的深色模块的颜色。
timing_light_color
设置时序图案的灯光模块的颜色。
version_dark_color
设置版本信息的深色模块的颜色。
微型QR码和小于版本7的QR码不携带任何版本信息。
version_light_color
设置版本信息的灯光模块的颜色。
微型QR码和小于版本7的QR码不携带任何版本信息。
实战:Django如何实现扫码浏览?
安装模块:
pip install django-qr-code
settings.py引入app
INSTALLED_APPS = (
...,
'qr_code',
)
html:
{% load qr_code %}
{% qr_from_text request.build_absolute_uri size="10" version=3 light_color="#FFFFFF" %}