简介:今天,首席CTO Note将与您分享如何在Django上传图片。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!
在项目中做一个坑。
最初,我觉得映像是在模型中定义的,这可以简化MySQL访问图片。实际上,读取静态图片确实很方便,只有相对路径是正确的。
例如:
但是,当用户需要阅读用户时,路径的问题就会暴露出来。
随便写这个
显然这条路是正确的,但是鹅,Django认为这条路可能来自别人的房子
尝试静态这一路
哦,可以显示图片。
因此,我继续在正在进行的项目中高兴地使用它
似乎仍然没有地方无法使用
图片也是路径,因此请尝试在urls.py上添加匹配项。
在许多博客中也发现了类似的操作。Django文档中有类似的谚语
添加类似匹配项后
可以再次使用。Sescein命令避免快乐,将其添加到您自己的项目中以尝试
在Django中的图片上传中,将两种类型上传到Django的背景上上传图片,以数据库的形式上传,另一个类型为数据库的形式,另一个则在HTML页面上以一种表单上传。
首先,安装此软件包PIP安装枕头== 3.4.1
您需要设置在设置中上传的路径
Media_root = os.path.join(base_dir,'static/Media')
在模型中配置数据库
类Pictest(Models.Model):
pic = models.imagefield(upload_to ='booktest')
数据库中必须有此字段
在html中写入pip type ='file'
在视图中写逻辑
还需要导入设置中的文件。
来自django.conf导入设置
导入操作系统
上传的图片保存在/静态/媒体/booktest/
接受文件中编写的提交数据
然后将提交的数据路径保存到数据库
显示图片时,view.py获取数据库中的路径地址
如果您使用所有方法,请在此处注意以获取它,您需要使用周期在HTML中显示图片
然后在html img url =“/static/media/{{p.pic}}}}}
第一个是由django背景提交的!这种用途不多,所以让我们在这里谈论它
Django上传图片:
从PIL导入图像
def uploadimage(请求):
如果request.method =='post':
content = request.files ['image field']
尝试:
img = image.open(content)
#img.thumbnail((500,500),image.antialias)#
img.save(“ abv.png”,“ jpg”)#保存图片
除例外,E:
返回httpresponse(“错误%s”%e)
返回httpresponse(“ ok”)
返回httpresponse(“错误”)
测试HTML:
身体
div class =“ file-box”
form action =“ method =”
输入类型='text'名称='textfield'id ='textfield'class ='txt' /
输入type =“ file” name =“ image field” class =“ file” id =“ image field” size =“ 28” onChange =“ document.getElementById('textfield')。值= this.vartue” / / /
输入type =“ submist” name =“ sumper” class =“ btn” value =“ upload” / / / /
/形式
/div
/身体
Django有两种类型的静态文件,即静态和媒体。
增加Media_url和Media_root
进口:
修改urlpatterns:
在本地调试中,setter.py文件设置为真实为true
注意:upload_to选项
使用nginx处理django静态文件,nginx.conf文件媒体配置如下:
自动化接口时,有时会遇到图片上传的接口。目前,内容类型不是应用程序/JSON。
这是DRF编写图片上传界面和测试。
1.写图片上传界面
首先创建一个文件夹我们要存储文件,并在settings.py中配置路径:
在项目的urls.py中配置媒体路线:
在应用程序的models.py中创建模型:
并在serializer.py中创建序列化:
写视图。
urls.py配置路由到应用程序:
最后,让我们测试:
结论:以上是CTO Notes为您汇编的Django中如何上传图片的相关内容,我希望它对您有所帮助!如果您解决问题,请与更多关心此的朋友分享问题?