Python 我无法显示url类型的图像

Python 我无法显示url类型的图像,python,html,django,Python,Html,Django,我无法显示url类型的图像。 我用product.html写的 <body> {% for product in products.all %} <h4> {{ product.product_title }}</h4> <img src="{% static product.image }} %}"/> <p> {{ product.body }} </p> {% endfor %} </b

我无法显示url类型的图像。 我用product.html写的

<body>
{% for product in products.all %}
    <h4> {{ product.product_title }}</h4>
    <img src="{% static product.image }} %}"/>
    <p> {{ product.body }} </p>

{% endfor %}
</body>
in views.py

def product(request):
    products = Product.objects.order_by('product_title')
    return render(request, 'registration/product.html',{'products':products})
从管理站点,我添加了产品标题、图片和正文。 图像的URL是

<a href="https://xxxxxx" target="_blank" rel="nofollow">
<img border="0" width="120" height="60" alt="" src="https://wwwyyyyyyyyyyyy"></a>
<img border="0" width="1" height="1" src="https://wwwzzzzzzzzzz" alt="">

通过使用Google控制台,未能加载资源:服务器以404(未找到)的状态响应在控制台中。 在元素中,img标记类似于

<img src="/static/wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww">


如何显示图像?我写img tag&src的方式错了吗?

您的图像不是静态文件。因为它是一个文本字段,而它的内容是一个url,所以您只需将该值放入src属性中。不需要使用静态标记

试试这个:

 <img src="{{ product.image }}"/>

您的图像不是静态文件。因为它是一个文本字段,而它的内容是一个url,所以您只需将该值放入src属性中。不需要使用静态标记

试试这个:

 <img src="{{ product.image }}"/>

如果你想在Django中使用图片,你必须像这样配置你的应用程序:

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static/')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join('path_to_your_Media_directory')
第一步:静态和媒体

settings.py
文件中,编写如下内容:

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static/')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join('path_to_your_Media_directory')
第二步:在模型中实现图像字段

在models.py文件中:

Image = models.ImageField(upload_to='upload_file_directory', null=True, blank=True, width_field=None, height_field=None, default=" ")
第三步:处理视图中的图像

在views.py文件中(不要忘记
request.FILES或None
!):

在模板中,不要忘记表单类中的
enctype=“multipart/form data”

第四步:调用模板中的图像

{% if 'your_image_exist' %}
   <img src='{{Model.Image.url}}' height="300" width="400"/>
{% endif %}
{%if'您的图像存在'%}
{%endif%}
这是一个全球性的例子,但为了使用Django处理图片,您必须设置所有这些东西!
祝你好运

如果你想在Django中使用图片,你必须这样配置你的应用程序:

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static/')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join('path_to_your_Media_directory')
第一步:静态和媒体

settings.py
文件中,编写如下内容:

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static/')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join('path_to_your_Media_directory')
第二步:在模型中实现图像字段

在models.py文件中:

Image = models.ImageField(upload_to='upload_file_directory', null=True, blank=True, width_field=None, height_field=None, default=" ")
第三步:处理视图中的图像

在views.py文件中(不要忘记
request.FILES或None
!):

在模板中,不要忘记表单类中的
enctype=“multipart/form data”

第四步:调用模板中的图像

{% if 'your_image_exist' %}
   <img src='{{Model.Image.url}}' height="300" width="400"/>
{% endif %}
{%if'您的图像存在'%}
{%endif%}
这是一个全球性的例子,但为了使用Django处理图片,您必须设置所有这些东西!
祝你好运

上传的图像不是静态文件。@DanielRoseman我听不懂你在说什么。你能告诉我更多细节吗?上传的图像不是静态文件。@DanielRoseman我听不懂你在说什么。你能告诉我更多细节吗?可能需要使用
|safe
过滤器。thx,你的答案。我写了你的代码,但是没有显示图像。通过使用Google控制台,[弃用]资源请求,其URL包含删除的空格(
\n
\r
\t
)字符和少于个字符(
看起来像
产品。图像
可能包含无效的url。该字段的内容是什么?它是否包含html标记,而不仅仅是图像url?可能需要使用那里的
|安全
过滤器。thx,你的答案。我编写了你的代码,但没有显示图像。使用谷歌控制台,[Deprecation]其URL同时包含删除的空格(
\n
\r
\t
)字符和少于个字符的资源请求(
看起来像
product.image
可能包含无效的url。该字段的内容是什么?它是否包含html标记,而不仅仅是图像url?thx-ur答案。您编写了image=models.ImageField(上传到='upload\u file\u目录',null=True,blank=True,width\u-field=None,height\u-field=None,default=”“),我无法理解如何将upload_写入='upload_file_目录',因为我更新了Django管理站点的图像。在我的媒体目录中,我有一些目录:
图片
地图
,…如果您在settings.py中正确配置了
媒体
,您只需写入:
上传到='pictures/'
你想参考媒体中的图片目录;)这样可以上传图像并将这些图像存储在你想要的位置。thx你的答案。你写了Image=models.ImageField(上传到='upload\u file\u directory',null=True,blank=True,width\u field=None,height\u field=None,default=“),我无法理解如何将upload_写入='upload_file_目录',因为我更新了Django管理站点的图像。在我的媒体目录中,我有一些目录:
图片
地图
,…如果您在settings.py中正确配置了
媒体
,您只需写入:
上传到='pictures/'
您希望参考媒体中的图片目录;)这样可以上载图像并将这些图像存储在您想要的位置。