Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在开发环境中服务静态映像_Python_Django_Django Templates_Django Media - Fatal编程技术网

Python 在开发环境中服务静态映像

Python 在开发环境中服务静态映像,python,django,django-templates,django-media,Python,Django,Django Templates,Django Media,当我试图从媒体的根本上为它服务时,我得到了这个破碎的形象。恳请您……不要给我看文档的链接或以前的问题。我已经试过了,但我还是得到了这个破碎的图像 Models.py: class BasicModel(models.Model): name = models.CharField(max_length=200) dob = models.DateField() photo = models.ImageField(upload_to='sample') class Basi

当我试图从媒体的根本上为它服务时,我得到了这个破碎的形象。恳请您……不要给我看文档的链接或以前的问题。我已经试过了,但我还是得到了这个破碎的图像

Models.py:

class BasicModel(models.Model):
    name = models.CharField(max_length=200)
    dob = models.DateField()
    photo = models.ImageField(upload_to='sample')

class BasicModelForm(ModelForm):
    class Meta:
            model = BasicModel
Views.py:

def BasicView(request):
    if request.method == 'POST':
            form = BasicModelForm(request.POST, request.FILES)
            if form.is_valid():
                    data = form.save()
                    return preview(request, data.id)
    else:
            form = BasicModelForm()
    return render_to_response("unnamed.html", {'form': form}, context_instance=RequestContext(request))

def preview(request, id):
    obj = get_object_or_404(BasicModel, pk=id)
    return render_to_response("preview.html", {'obj': obj})
Settings.py:

MEDIA_ROOT = '/home/nirmal/try/files/'
MEDIA_URL = 'http://localhost:8000/files/'
URL.py:

url(r'^unnamed/$', 'unnamed.views.BasicView'),
url(r'^files/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
url(r'^unnamed/$,'unnamed.views.BasicView'),
url(r'^files/(?P.*)','django.views.static.service',{'document\u root':settings.MEDIA\u root}),
Preview.html:

<html>
<body>
{{ obj.name }}
{{ obj.dob }}
<img src="{{ MEDIA_URL }}sample/{{ obj.photo }}" />
</body>
</html>

{{obj.name}
{{obj.dob}}
有人能帮我吗

谢谢

替换:

{{ MEDIA_URL }}sample/{{ obj.photo }}
与:

作为旁注,您确定{MEDIA_URL}}甚至在模板中定义了吗?

替换:

{{ MEDIA_URL }}sample/{{ obj.photo }}
与:


作为旁注,您确定{MEDIA\u URL}}甚至在模板中定义了吗?

我想应该记住,ImageField表示返回相对于
MEDIA\u URL
的URL。这意味着您应该在模板中使用以下代码:

<html>
<body>
{{ obj.name }}
{{ obj.dob }}
<img src="{{ MEDIA_URL }}{{ obj.photo }}" />
</body>
</html>

{{obj.name}
{{obj.dob}}
甚至更短,请将绝对URL路径与以下内容一起使用:

<html>
<body>
{{ obj.name }}
{{ obj.dob }}
<img src="{{ obj.photo.url }}" />
</body>
</html>

{{obj.name}
{{obj.dob}}

提示,在浏览器中查找损坏图像的URL。我猜这有点像
http://localhost:8000/files/sample/sample/xyz.png

我想应该记住,ImageField表示返回相对于
媒体的URL
。这意味着您应该在模板中使用以下代码:

<html>
<body>
{{ obj.name }}
{{ obj.dob }}
<img src="{{ MEDIA_URL }}{{ obj.photo }}" />
</body>
</html>

{{obj.name}
{{obj.dob}}
甚至更短,请将绝对URL路径与以下内容一起使用:

<html>
<body>
{{ obj.name }}
{{ obj.dob }}
<img src="{{ obj.photo.url }}" />
</body>
</html>

{{obj.name}
{{obj.dob}}

提示,在浏览器中查找损坏图像的URL。我猜这有点像
http://localhost:8000/files/sample/sample/xyz.png

为什么第一个语法错误?两者都提供相同的url这是ipdb的作业。运行pip安装ipdb。然后在视图中放入“import ipdb;ipdb.set_trace()”。在那里,您可以输入“form.instance.photo.url”或“from django.conf.settings import MEDIA_url;MEDIA_url+form.instance.photo”,并比较结果。这里有一个简短的说明,但您可以阅读我关于调试的文章:为什么第一个语法是错误的?两者都提供相同的url这是ipdb的作业。运行pip安装ipdb。然后在视图中放入“import ipdb;ipdb.set_trace()”。在那里,您可以输入“form.instance.photo.url”或“from django.conf.settings import MEDIA_url;MEDIA_url+form.instance.photo”,并比较结果。这里有一个简短的评论,但您可以阅读我关于调试的文章: