【发布时间】:2020-07-05 05:22:35
【问题描述】:
我在 Django Rest Framework 中使用 Python PIL 库来构建二维码并将其保存到静态目录。
def generate_qr(self, name):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_M,
box_size=15,
border=5
)
qr.add_data(name)
qr.make(fit=True)
img = qr.make_image(fill='black', back_color='white')
img.save(settings.STATIC_ROOT+"/asset-tags/name.png")
return(name+ '.png')
settings.py 用于媒体和静态网址:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_URL = "/mediafiles/"
MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles")
但是在保存时会抛出一个错误,说 /usr/app/static/name.png : no file or directory。 我正在创建新文件,那么它如何在给定文件夹中找到图像。
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
你设置
MEDIA_URL和MEDIA_ROOT了吗?查看docs 了解如何服务MEDIA_FILES。 -
这能回答你的问题吗? How does Django serve media files?
-
我已经设置了 MEDIA_URL 和 MEDIA_ROOT。我已经更新了这个问题。您在上面分享的文档也可以用于保存图像?
-
图像应保存在
MEDIA_ROOT中,您的设置应保存在mediafiles目录中。试试settings.MEDIA_ROOT。 -
img的类型是什么?
标签: python django docker django-rest-framework python-imaging-library