這只是一個筆記,如果能幫到人就好了@@,以下的程式碼可以把字串編碼成Base 64的QR圖片,在Flask渲染成網頁時可以直接在後端產生QR圖片崁入網頁中,直接顯示。
我的話是拿來直接在後端產生雙因素驗證的私鑰時顯示給使用者掃描用的,本來是要尋求前端解決方案,但是不會JavaScript的我表示放棄,Google的API也被棄用了QQ。
所以只好自己在後端渲染的時候生出來了,順帶一提我用的是Flask+Jinja2
import base64
import qrcode
from io import BytesIO
def str2base64pic(s:str):
img = qrcode.make(s)
buffered = BytesIO()
img.save(buffered, format="JPEG")
return base64.b64encode(buffered.getvalue()).decode("utf-8")
網頁的部分則是如下:
<img src="圖片來源" />
加入QR Code後變成這樣:
<img src="data:image/jpeg;base64,/9j/4AA(這是Base 64,太長所以略....)" />