gpt4 book ai didi

python - 如何访问通过 Django 表单上传的媒体文件?

转载 作者:行者123 更新时间:2023-12-05 07:09:52 27 4
gpt4 key购买 nike

我正在 Django 的表单中接受来自用户的图像。如何访问上传的图像以在 Web 浏览器中显示它?

这是我在 settings.py 中的内容

MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'

这是在我的 models.py 中

class Hotel(models.Model):
name = models.CharField(max_length=50)
image = models.ImageField(upload_to="images/")

此外,我添加了

if settings.DEBUG:
urlpatterns +=static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

在 urls.py 中

我试图访问图像

def image_view(request):
if request.method=='POST':
farm = hotelForm();
form = hotelForm(request.POST,request.FILES)
if form.is_valid():
form.save()
modelff = Hotel(name=request.POST['name'],image = request.FILES['image'])
# print(modelff.image.url)

return render(request,'djangoform.html',{"form":farm,"uploaded_data_url":modelff.image.url})

else:
form = hotelForm()
return render(request,'djangoform.html',{"form":form})

在我的模板中,我访问图像为 <img src="{{uploaded_data_url}}"> .但是图像没有显示,控制台显示找不到图像。

附言我看过How to access media files in django How to access uploaded files in Django? https://docs.djangoproject.com/en/dev/howto/static-files/#serving-files-uploaded-by-a-user-during-development Django : accessing uploaded picture from ImageField但他们似乎都没有帮助我。我找不到如何包含 'images/'在我的道路上。我的uploaded_data_url显示/media/Screenshot%202020-04-18%20at%206.39.24%20PM.png虽然我希望它显示 /media/images/Screenshot%202020-04-18%20at%206.39.24%20PM.png

问题出在哪里?

此外,如果可以有类似于 How can I get uploaded text file in view through Django? 的东西( f.read() in this question ) 会很棒。

编辑:从一个答案来看,问题似乎并不清楚,我想澄清一下,以上只是我尝试过的,我真的不知道它是否正确。其次,这样做的全部目的是从用户那里获取图像,对其进行处理,并将原始和最终图像显示给用户。因此,如果您必须使用任何其他方法来执行此操作,请分享。

最佳答案

如果 uploaded_data_url 显示此 /media/Screenshot%202020-04-18%20at%206.39.24%20PM.png 那么这意味着图像保存在 media 目录。这是预期的,因为您的 conf 是 MEDIA_URL = '/media/'

如果你想要它作为 /media/images/Screenshot%202020-04-18%20at%206.39.24%20PM.png 然后更改为这个 MEDIA_URL = '/media/图片/'.

上面的问题是它会干扰所有其他媒体文件,所以一个更简单的解决方案是将 /media/ 替换为 /media/images/.

在您的 views.py 中对此进行调整

url = str(modelff.image.url)
modUrl = url.replace("/media/","/media/images/")
return render(request,'djangoform.html',{"form":farm,"uploaded_data_url":modUrl l})

关于python - 如何访问通过 Django 表单上传的媒体文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61418471/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com