官方文档:
https://marcoagner.github.io/Flask-QRcode/
捞稠的记一下用法
装轮子
pip install flask-qrcode
扩展app对象
在常规实例化Flask
对象后使用QRcode(app)
为其扩展新的模板中可以使用的方法
from flask import Flask, render_template, request, jsonify, g, session, url_for
from flask_qrcode import QRcode
app = Flask(__name__)
# 对实例化的app对象进行扩展
QRcode(app)
# 下面都是Flask里面的常规路由操作啦,可以pass
@app.route('/')
def login():
"""
登录页面
"""
return render_template('login.html')
模板中使用
在Jinja2
模板中可以直接使用下面的语法来直接为<img>
标签传递src
属性显示二维码
<img src="{{ qrcode("Do you speak QR?") }}">
显示效果:
通过查看渲染后的页面源代码可以看到,图片对应的src
其实是个给浏览器解析用的base64类型数据,所以就不用专门再为二维码保存静态文件了,很方便有木有!
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAP....
更多配置
如果想要显示分辨率更高的二维码,可以设置box_size
属性,这个属性定义的是二维码中每个基本的黑色小正方形方块边长占用的像素个数,如果不指定的话,默认值是10,基本上默认值的分辨率就都够用的.如果需要指定二维码整体大小的话,还是用css控制就行.
<img src="{{ qrcode("I'm bigger than you!", box_size=20) }}">
当然还有其他诸如修改颜色\中间添加图标等反正是我估计用不到的样式,有需要的可以去官网看说明啦.