我从django应用程序开始,并尝试在主页中显示图像。但是图像没有被显示。
我的settings.py:
MEDIA_ROOT = os.path.join(BASE_DIR,"media")
MEDIA_URL = "/media/"
我的网址.py:
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'myapp.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'',include('users.urls')),
)
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我的home.html:
<html>
<head>
<title>MY SITE</title>
</head>
<body>
<img src="/media/image/myimage.jpg" alt="my image"/>
Welcome to my site
</body>
</html>
我得到文本我的图像
显示而不是图像
我建议您设置DEBUG=TEMPLATE_DEBUG=True并直接请求图像URL。
您将得到Django调试输出,要么显示URL不匹配,要么显示它实际寻找的文件路径。
这些设置看起来基本上是正确的,尽管您没有共享BASE_DIR,这在本例中很重要。
您在列表中添加媒体URL的时间太晚。Django将尝试连续匹配每个< code>urlpattern,当它到达第一个时停止。在这种情况下,它在< code>r''上匹配,并且不到达静态文件或媒体URL。
您可以将每个模式放在对 patterns() 的
单个调用中,而不是使用 =
。这将是最干净的,但我不能在这里测试它。一个确定的方法是将“users.urls”行拉出并在以后添加它,如下所示:
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
)
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += url(r'',include('users.urls'))
好的,所以我建立了一个简单的“配对”工作示例,这样就不会丢失移动部分。一些注释:
这意味着您需要破解并刷新您的MEDIA引用。(MEDIA实际上是用于文件上传的),您不需要在URL中愚弄staticfiles_urlpatterns。py文件。当您在添加“django.contrib”时,就可以摆脱这种行为。staticfiles”设置为您的设置.py
概述:这是django 1.6中你的文件树布局的样子,以及我在这个回答中提到的文件结构。
├── djproj
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
├── manage.py
└─── myapp
├── admin.py
├── __init__.py
├── models.py
├── static
│ └── myapp
│ └── myimage.jpg
├── templates
│ └── index.html
├── tests.py
└── views.py
步骤1:确保django.contrib。静态文件包含在INSTALLED_APPS中。
第2步:在您的设置文件中,定义STATIC_URL,例如:
STATIC_URL = '/static/'
第三步:换个家。html如下所示(我在示例中使用了index.html)
[ PROJECT_HOME/我的应用/模板/索引.html ]
<html>
<head>
<title>MY SITE</title>
</head>
<body>
{% load staticfiles %}
<img src="{% static "myapp/myimage.jpg" %}" alt="My image"/>
Welcome to my site
</body>
</html>
请务必阅读与STATICFILES_STORAGE相关的django-1.6 staticfiles文档,以便理解这些模板标签给你带来了什么。提示:< code > python manage . py collect static
步骤4:(您可能已经这样做了,但我没有看到)确保在您的设置中定义了TEMPLETE_DIRS。py,包括您的家。html(这里的关键是django的模板引擎需要提供此服务,因为我们将使用一些模板标记)
[PROJECT_HOME/djproj/settings.py]
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
BASE_DIR + '../myapp/templates',
)
第五步:构建一个呈现你家的视图。html页面。
[PROJECT_HOME/myapp/views.py]
from django.shortcuts import render_to_response
def index( request ):
return render_to_response('index.html')
由于这有点复杂,这里有几个移动的部分:这是一个显示完整“更改”的变更集
如果其中任何一个令人困惑,你可以粗略地拉动整个github项目。django-staticfiles-setup示例
最后注意:静态文件在django中并不总是以这种方式处理。媒体目录曾经是你所追求的设置。所以这个答案是针对Django 1.6的(静态文件是在django版本1.3中添加的)(目录布局在django 1.5中发生了变化)。
您可以(正如您试图做的那样)将您的媒体目录硬连接到STATIC定义。尽管如此,我不推荐这样做。这就是为什么我没有描述如何这样做。
问题内容: 虽然我可以在list_display中显示上载的图像,但是是否可以在每个模型页面上执行此操作(就像在更改模型时获得的页面一样)? 快速样本模型为: 默认管理员显示上传图像的URL,但不显示图像本身。 问题答案: 当然。在模型类中,添加类似以下方法: 并在你的添加: 给你。如果要限制编辑图像字段的能力,请确保将其添加到exclude属性。 注意:仅在readonly_fields中使用D
我尝试了一切,但图像不会显示,我试图缩小图像,但没有用,我试图改变路径,我试图更改图像的位置,但没有帮助,我试图在互联网上搜索,但什么都没有。 我看到的只是空白的图形用户界面,没有文本和图像。如果你能帮我,你会帮我一个大忙。 代码如下:
我正在使用此代码显示图像 图片存在于storage\app\public\images上,但它没有显示在我的页面上,顺便说一句,我已经创建了php artisan storage:link
我已经制作了Hello World RCP应用程序,得到了以下类结构: 向Perspective.createInitialLayout()添加额外代码: 但不显示视图。 我将breakpoint设置到perspective.createInitialLayout()中,发现它没有执行。 我的观点声明是: ApplicationWorkbenchAdvisor.GetInitialWindowPe
问题内容: 我只是开始使用django,而且我还没有找到有关如何显示imageField的很多信息,所以我做到了: models.py views.py image.html 我已经保存了图像,因为终端,我知道在那里,如果在image.html中这样做: 输出是:Car object 谁能告诉我我的错误在哪里? 问题答案: 一个包含一个属性,你可以在你的模板用来呈现适当的HTML。
问题内容: 我定义了一个包含链接图像的模型。有没有办法在模型项目列表中显示图像?我的模型如下所示: 有没有办法显示图像和标题? 问题答案: 你可以使用其他名称创建模型实例方法,允许HTML标签为其输出,并将此方法添加为列表字段。这是一个例子: 首先添加一个新方法,返回包含图像的HTML: 然后将此方法添加到列表中: