导读:很多朋友问到关于django怎么调用图片上传的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
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配置路由:
最后我们测试一下:
Django model.ImageFiled 图片的上传及显示
做项目中的一个坑。。
本来觉得在model里面定义了ImageFiled,能简化MySQL存取图片。事实上在读取静态图片的时候确实很方便,只需要相对路径正确即可。
eg:
但是当需要读取到用户自己上传的图片的时候,路径的问题就暴露出来了。
这个随便写写就好了
明明路径是对的,然鹅,Django觉得这个路径可能是别人家的
试试把这个路径静态了
呵,图片能够显示了。
于是继续满心欢喜地用到了正在进行的项目中
貌似有的地方还是不能用
图片也是路径诶,所以试着在urls.py加上一个匹配。
在许多博客里也找到了类似的操作,Django document中也有类似的说法
加入了类似的匹配之后
又能使用了。。为了避免白高兴一场,在自己的项目里面加入试一下
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
结语:以上就是首席CTO笔记为大家介绍的关于django怎么调用图片上传的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。