首页>>后端>>Python->django中如何上传图片(django上传图片并显示)

django中如何上传图片(django上传图片并显示)

时间:2023-12-06 本站 点击:0

导读:今天首席CTO笔记来给各位分享关于django中如何上传图片的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

Django model.ImageFiled 图片的上传及显示

做项目中的一个坑。。

本来觉得在model里面定义了ImageFiled,能简化MySQL存取图片。事实上在读取静态图片的时候确实很方便,只需要相对路径正确即可。

eg:

但是当需要读取到用户自己上传的图片的时候,路径的问题就暴露出来了。

这个随便写写就好了

明明路径是对的,然鹅,Django觉得这个路径可能是别人家的

试试把这个路径静态了

呵,图片能够显示了。

于是继续满心欢喜地用到了正在进行的项目中

貌似有的地方还是不能用

图片也是路径诶,所以试着在urls.py加上一个匹配。

在许多博客里也找到了类似的操作,Django document中也有类似的说法

加入了类似的匹配之后

又能使用了。。为了避免白高兴一场,在自己的项目里面加入试一下

django框架页面上传图片三个注意的写法

在django里图片上传里,分为两种一种是在django的后台上传图片,以数据库的方式上传,另一种是在html页面以表单的方式上传

首先要先安装下这个包 pip install Pillow==3.4.1

setting里需要设置 上传的路径

MEDIA_ROOT=os.path.join(BASE_DIR,'static/media')

在model里要配置数据库

class PicTest(models.Model):

pic=models.ImageField(upload_to='booktest')

数据库里要有这个字段

在html 要写input type=’file’ 这个字段

在view里要写逻辑

还有涉及到要操作setting里的文件 需要导入设置的包

from django.conf import settings

import os

上传的图片都是保存在 /static/media/booktest/

接受提交的数据写到文件里

然后对提交的数据路径保存到 数据库里

在显示图片的时候 view.py get得到数据库里的路径地址

这里要注意 要是使用的all的方式获取的话 在html里就需要使用循环的方式来显示图片

然后在html img url= "/static/media/{{p.pic}}

第一种以django后台的方式提交! 这种用的不多,在这里也简单说一下

django mongoengine FileField 上传图片问题,很急,高悬赏在线等,解决追加!

django上传图片:

from PIL import Image

def UploadImage(request):

if request.method == 'POST':

content = request.FILES['ImageField']

try:

img = Image.open(content)

#img.thumbnail((500,500),Image.ANTIALIAS)#对图片进行等比缩放

img.save("abv.png","jpg")#保存图片

except Exception,e:

return HttpResponse("Error %s"%e)

return HttpResponse("ok")

return HttpResponse("error")

测试html:

body

div class="file-box"

form action="" method="post" enctype="multipart/form-data"

input type='text' name='textfield' id='textfield' class='txt' /

input type="file" name="ImageField" class="file" id="ImageField" size="28" onchange="document.getElementById('textfield').value=this.value" /

input type="submit" name="submit" class="btn" value="upload" /

/form

/div

/body

Django:上传图片并显示

Django的静态文件有两类,分别为 static 和 media 。

增加 MEDIA_URL 和 MEDIA_ROOT

导入:

修改urlpatterns:

在本地调试需要将 setting.py 文件中, DEBUG 设置为 True

注意: upload_to 选项

使用nginx处理django静态文件, nginx.conf 文件 media 配置如下:

Django REST framework编写图片上传接口并测试

在做接口自动化时,有时会遇到图片上传的接口,这时Content-Type就不是application/json。

这里使用DRF编写一个图片上传接口,并测试。

一、编写图片上传接口

首先创建一个我们希望用来存放文件的文件夹,并且在settings.py中配置路径:

在项目的urls.py中配置media的路由:

在应用的models.py中创建模型:

并且在serializers.py中创建序列化:

编写视图views.py:

给应用的urls.py配置路由:

最后我们测试一下:

结语:以上就是首席CTO笔记为大家整理的关于django中如何上传图片的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/15763.html