Python Django:想创建一个可以上传和显示图像的应用程序吗
我想创建一个django应用程序,可以上传和显示图像。然而,我有一些麻烦,因为它不能正常工作。当我试图从我的表单上传图像时,它不会显示在我的列表中。因此,我似乎在显示图像时遇到了问题 以下是我迄今为止所做的工作 编辑-代码已更新:我做了一些需要进行的更改。现在还有一个问题。我的程序不是打印图像,而是打印保存图像的目录 例如,{comment.photo}将打印出路径Python Django:想创建一个可以上传和显示图像的应用程序吗,python,django,image,forms,upload,Python,Django,Image,Forms,Upload,我想创建一个django应用程序,可以上传和显示图像。然而,我有一些麻烦,因为它不能正常工作。当我试图从我的表单上传图像时,它不会显示在我的列表中。因此,我似乎在显示图像时遇到了问题 以下是我迄今为止所做的工作 编辑-代码已更新:我做了一些需要进行的更改。现在还有一个问题。我的程序不是打印图像,而是打印保存图像的目录 例如,{comment.photo}将打印出路径C:/Users/AQUIL/Desktop/myproject/images/P1000992.JPG。但是我想看到屏幕上的图像。
C:/Users/AQUIL/Desktop/myproject/images/P1000992.JPG
。但是我想看到屏幕上的图像。如何将图像打印到屏幕上
型号.py
class Comment(models.Model):
name = models.CharField(max_length = 40)
datetime = models.DateTimeField(default=datetime.now)
photo = models.ImageField(upload_to='C:/Users/AQUIL/Desktop/myproject/images', blank=True, null=True)
note = models.TextField()
def __unicode__(self):
return unicode(self.name)
def home(request):
comments = None
try:
comments = Comment.objects.order_by('-datetime')
except:
return HttpResponseNotFound()
return render_to_response('home.html', {'comments':comments}, context_instance=RequestContext(request))
def add_notes(request):
comments = Comment.objects.all()
if request.method == 'POST':
form = CommentForm(request.POST or None, request.FILES)
if form.is_valid():
comments.datetime = datetime.now()
form.save(True)
return HttpResponseRedirect(reverse(home))
else:
form = CommentForm()
return render_to_response('form.html', {'form':form,'comments':comments}, context_instance = RequestContext(request))
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
exclude =('datetime')
视图.py
class Comment(models.Model):
name = models.CharField(max_length = 40)
datetime = models.DateTimeField(default=datetime.now)
photo = models.ImageField(upload_to='C:/Users/AQUIL/Desktop/myproject/images', blank=True, null=True)
note = models.TextField()
def __unicode__(self):
return unicode(self.name)
def home(request):
comments = None
try:
comments = Comment.objects.order_by('-datetime')
except:
return HttpResponseNotFound()
return render_to_response('home.html', {'comments':comments}, context_instance=RequestContext(request))
def add_notes(request):
comments = Comment.objects.all()
if request.method == 'POST':
form = CommentForm(request.POST or None, request.FILES)
if form.is_valid():
comments.datetime = datetime.now()
form.save(True)
return HttpResponseRedirect(reverse(home))
else:
form = CommentForm()
return render_to_response('form.html', {'form':form,'comments':comments}, context_instance = RequestContext(request))
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
exclude =('datetime')
forms.py
class Comment(models.Model):
name = models.CharField(max_length = 40)
datetime = models.DateTimeField(default=datetime.now)
photo = models.ImageField(upload_to='C:/Users/AQUIL/Desktop/myproject/images', blank=True, null=True)
note = models.TextField()
def __unicode__(self):
return unicode(self.name)
def home(request):
comments = None
try:
comments = Comment.objects.order_by('-datetime')
except:
return HttpResponseNotFound()
return render_to_response('home.html', {'comments':comments}, context_instance=RequestContext(request))
def add_notes(request):
comments = Comment.objects.all()
if request.method == 'POST':
form = CommentForm(request.POST or None, request.FILES)
if form.is_valid():
comments.datetime = datetime.now()
form.save(True)
return HttpResponseRedirect(reverse(home))
else:
form = CommentForm()
return render_to_response('form.html', {'form':form,'comments':comments}, context_instance = RequestContext(request))
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
exclude =('datetime')
home.html
{% extends "base.html" %}
{% block content %}
<H2>List of Comments</H2>
<div style="overflow:auto;padding: 10px; border:1px solid black; height:150px; width:700px;">
{% for comment in comments %}
{{comment.photo}}<br/>
<b>Posted by: {{ comment.name }} Date: {{ comment.datetime.date }} Time: {{comment.datetime.time}}</b><br/>
<div style="font-size:125%">{{ comment.note }}</div><br/>
{% endfor %}
</div>
{% endblock %}
{% extends "base.html" %}
{% block content %}
<h3>Add Notes</h3>
<form enctype="multipart/form-data" action="" method="POST">{% csrf_token %}
<table>
{{form.as_table}}<br/>
</table>
<input type="submit" value="Save" STYLE="background-color:#E8E8E8; color:#181818 "/>
</form>
{% endblock %}
{%extends“base.html”%}
{%block content%}
评论清单
{注释%中的注释为%}
{{comment.photo}}
发布人:{comment.name}日期:{{comment.datetime.Date}时间:{{comment.datetime.Time}}
{{comment.note}}
{%endfor%}
{%endblock%}
这是很多信息,但我希望这能有所帮助。
form.html
{% extends "base.html" %}
{% block content %}
<H2>List of Comments</H2>
<div style="overflow:auto;padding: 10px; border:1px solid black; height:150px; width:700px;">
{% for comment in comments %}
{{comment.photo}}<br/>
<b>Posted by: {{ comment.name }} Date: {{ comment.datetime.date }} Time: {{comment.datetime.time}}</b><br/>
<div style="font-size:125%">{{ comment.note }}</div><br/>
{% endfor %}
</div>
{% endblock %}
{% extends "base.html" %}
{% block content %}
<h3>Add Notes</h3>
<form enctype="multipart/form-data" action="" method="POST">{% csrf_token %}
<table>
{{form.as_table}}<br/>
</table>
<input type="submit" value="Save" STYLE="background-color:#E8E8E8; color:#181818 "/>
</form>
{% endblock %}
{%extends“base.html”%}
{%block content%}
添加注释
{%csrf_令牌%}
{{form.as_table}}
{%endblock%}
读入文档
另外,我们可以看到表单的html代码吗?顺便说一句,如果你做的和文档中的一模一样,你会解决的。。。enctype是最基本的 读入文档
另外,我们可以看到表单的html代码吗?顺便说一句,如果你做的和文档中的一模一样,你会解决的。。。enctype是最基本的 首先,URL字符串应该只包含斜杠“/”符号,而不是“\” 其次,您可以使用本地路径上传参数,如下所示:
upload_to='upload/'
然后在settings.py中正确设置MEDIA_ROOT值,请参阅
在您的情况下,它将是:
MEDIA_ROOT = 'C:/Users/AQUIL/Desktop/myproject/images/'
首先,URL字符串应该只包含斜杠“/”符号,而不是“\” 其次,您可以使用本地路径上传参数,如下所示:
upload_to='upload/'
然后在settings.py中正确设置MEDIA_ROOT值,请参阅
在您的情况下,它将是:
MEDIA_ROOT = 'C:/Users/AQUIL/Desktop/myproject/images/'
好的,因此您必须将enctype=“multipart/form data”添加到表单标记中,否则它不会上载任何图像您必须在
settings.py中配置更多内容;像MEDIA\u ROOT
或MEDIA\u URL
之类的东西。然后你必须把图像目录放在一个htmlimg
标记中,在你的例子中,它可能看起来像:
。有关更多Django详细信息和HTML详细信息,请参阅。好的,因此您必须将enctype=“multipart/form data”添加到表单标记中,否则它不会上载任何图像您必须在settings.py中配置更多内容;像MEDIA\u ROOT
或MEDIA\u URL
之类的东西。然后你必须把图像目录放在一个htmlimg
标记中,在你的例子中,它可能看起来像:
。查看更多Django详细信息和更多HTML详细信息。是的,基本上你必须合并我们的两个答案才能达到你的目的。是的,基本上你必须合并我们的两个答案才能达到你的目的