使用以下内容,应生成内存映像:
url = pyqrcode.create(user.get_totp_uri())
stream = StringIO()
url.svg(stream, scale=3)
return stream.getvalue().encode('utf-8'), 200, {
'Content-Type': 'image/svg+xml',
'Cache-Control': 'no-cache, no-store, must-revalidate',
'Pragma': 'no-cache',
'Expires': '0'}
我收到以下错误:
File "E:\Data\pathsdb\flask\lib\site-packages\pyqrcode\builder.py", line 1118, in _svg
write_bytes(b'<?xml version="1.0" encoding="UTF-8"?>\n')
TypeError: unicode argument expected, got 'str'
任何人都知道我做错了什么?
答案 0 :(得分:0)
解决:
使用以下代码:
url = pyqrcode.create(user.get_totp_uri())
stream = BytesIO()
url.svg(stream, scale=3)
return stream.getvalue(), 200, {
'Content-Type': 'image/svg+xml',
'Cache-Control': 'no-cache, no-store, must-revalidate',
'Pragma': 'no-cache',
'Expires': '0'}
应该使用BytesIO并删除编码。