django项目中如何将图像文件从数据库传递到html
我尝试了许多解决办法。但我无法修复和解决。我无法将用户的图像文件传递到我的html页面。但我可以访问并传递特定用户数据库中的所有元素。当我尝试访问用户的图像文件时,它只返回图像的文件路径。请帮我解决这个问题 型号.pydjango项目中如何将图像文件从数据库传递到html,html,django,python-3.x,forms,Html,Django,Python 3.x,Forms,我尝试了许多解决办法。但我无法修复和解决。我无法将用户的图像文件传递到我的html页面。但我可以访问并传递特定用户数据库中的所有元素。当我尝试访问用户的图像文件时,它只返回图像的文件路径。请帮我解决这个问题 型号.py class registration(models.Model): First_Name =models.CharField(max_length=50) Last_name = models.CharField(max_length=50) Phon
class registration(models.Model):
First_Name =models.CharField(max_length=50)
Last_name = models.CharField(max_length=50)
Phone_number = models.BigIntegerField()
Email_id = models.EmailField()
Password = models.CharField(max_length=20)
Conform_Password = models.CharField(max_length=20)
Register_No = models.BigIntegerField(primary_key=True)
profile_pic = models.ImageField(upload_to="Profile")
def __str__(self):
return self.First_Name
def login(request, *args, **kwargs):
if request.method == 'POST':
user_Name=int(request.POST["stu_uname"])
pass_word=request.POST["stu_pwd"]
get_user_name = registration.objects.filter(Register_No = user_Name).exists()
if get_user_name is True:
check_pwd = registration.objects.values('Password').filter(Register_No = user_Name)
for check in check_pwd:
pwd = check['Password']
if pwd == pass_word:
user_objects = get_objects(user_Name)
return render(request, "stu_profile.html", {'userObj': user_objects})
else:
return HttpResponse("<h1> Password is incorrect</h1>")
else:
return HttpResponse("<h1> User name is incorrect </h1>")
return redirect('student')
def get_objects(name):
check_objects = registration.objects.values().filter(Register_No = name)
for check in check_objects:
values = check
return values
MEDIA_ROOT = os.path.join(BASE_DIR, 'Pictures/')
MEDIA_URL = '/Pictures/'
视图.py
class registration(models.Model):
First_Name =models.CharField(max_length=50)
Last_name = models.CharField(max_length=50)
Phone_number = models.BigIntegerField()
Email_id = models.EmailField()
Password = models.CharField(max_length=20)
Conform_Password = models.CharField(max_length=20)
Register_No = models.BigIntegerField(primary_key=True)
profile_pic = models.ImageField(upload_to="Profile")
def __str__(self):
return self.First_Name
def login(request, *args, **kwargs):
if request.method == 'POST':
user_Name=int(request.POST["stu_uname"])
pass_word=request.POST["stu_pwd"]
get_user_name = registration.objects.filter(Register_No = user_Name).exists()
if get_user_name is True:
check_pwd = registration.objects.values('Password').filter(Register_No = user_Name)
for check in check_pwd:
pwd = check['Password']
if pwd == pass_word:
user_objects = get_objects(user_Name)
return render(request, "stu_profile.html", {'userObj': user_objects})
else:
return HttpResponse("<h1> Password is incorrect</h1>")
else:
return HttpResponse("<h1> User name is incorrect </h1>")
return redirect('student')
def get_objects(name):
check_objects = registration.objects.values().filter(Register_No = name)
for check in check_objects:
values = check
return values
MEDIA_ROOT = os.path.join(BASE_DIR, 'Pictures/')
MEDIA_URL = '/Pictures/'
我希望这对你有用 HTML页面
<div class="pro_pic">
<img src = "{{userObj.profile_pic}}"> #this image doesn't render.
<div>
<p> {{userObj.First_Name}} {{userObj.Last_name}} </p>
</div>
</div>
{% load static %}
{% static "img" as baseUrl %}
<div class="pro_pic">
<img src = "{{userObj.profile_pic.url}}"> #this image doesn't render.
<div>
<p> {{userObj.First_Name}} {{userObj.Last_name}} </p>
</div>
</div>
{%load static%}
{%static“img”作为baseUrl%}
#此图像无法渲染。
{{userObj.First_Name}{{userObj.Last_Name}
和
{%static”中的图像文件夹名作为baseurl“%}
1),即使您不想使用对象。获取您可以执行对象。筛选(…)[:1]
以获取实例而不是列表-这将允许您摆脱模糊的for循环。2) 从呈现的HTML获取图像URL并尝试直接打开它-响应状态/错误消息是什么?嘿,兄弟,没有错误消息。我已经说过,我可以访问数据库中的所有内容,但是ImageField返回它存储的图像的文件路径。Picture是主媒体根文件夹,在该文件夹中my models.py创建了另一个文件夹,这是我的说明的原因。因此,当我访问ImageField时,我会得到图像的路径,如(“Pictures/Profile/something.jpg”)所示。请按照@arjun的建议更改模板代码(…Profile\u pic.url
),从呈现页面获取完整url,复制此url并在另一个浏览器选项卡中打开。请将此URL(不是路径)和响应状态添加到您的问题。