如何使用Django显示在后端生成的图像

yob*_*chi 5 python django python-imaging-library python-3.x web

我是django的新手,我对图像显示问题很困惑.现在我有一个在后端生成的词云的图像(比方说,topicWords.py),我不知道如何应对它.(1)如何将其存储在模型UserProfile的图像字段中?在models.py中,我有:

class UserProfile(models.Model):
user = models.OneToOneField(User)
tagcloud = models.ImageField(upload_to ='rap_song/raptle/pic/')
Run Code Online (Sandbox Code Playgroud)

直接做是这样的:

user.userprofile.tagcloud = wc #wc is the image generated
Run Code Online (Sandbox Code Playgroud)

(2)MEDIA_ROOT和MEDIA_URL的设置应该是什么?

(3)我应该如何在.html中显示它?

<img src = "???">
Run Code Online (Sandbox Code Playgroud)

非常感谢你!

JRo*_*ite 0

MEDIA_URL应该是这样的:

MEDIA_ROOT='(the full path to the media folder)' (i.e: '/home/jason/work/project/media/')
MEDIA_URL='/media/'
Run Code Online (Sandbox Code Playgroud)

并将这些行添加到文件末尾urls.py

urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)

您可以使用以下方法在模板中访问它:

<img src = "{{ user.userprofile.tagcloud.url }}">
Run Code Online (Sandbox Code Playgroud)

如果您想在 Django 中手动设置 ImageField 路径,则可以保存图像文件,然后在保存模型实例时设置路径值。您可以参考此链接以获取更多信息。