关于django中图片的上传

django中图片的保存

首先要建立图片存储的文件

from 项目名称.setting import  MEDIA_ROOT 

filename = request.FILES.get('前端传入参数', ‘’)

 suffix = Uploadfiles.name.split(".")[-1]

   part_path = part_path.strip("/") + "/"

# 生成一个图片名称

   name = uuid.uuid1()

# 存入midia中的图片路径

   picture_file_path = os.path.join(setting.MEDIA_ROOT, part_path + "{0}.{1}".format(name, suffix))

        # 或写成   picture_file_path = os.path.join(MEDIA_ROOT, part_path + "{0}.{1}".format(name, suffix))

    pic = Image.open(Uploadfiles)

    w, h = pic.size

 #对图片进行压缩

     pic.thumbnail((int(w / 1.1), int(h / 1.1)))

#保存图片到指定目录中

     pic.save(picture_file_path)

     index_media = picture_file_path.find('/media')

# 返回给前端media中图片的路径,方便前端读取

   picture_file_path = picture_file_path[index_media:]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django进行图片上传的步骤如下: 1. 首先,在你的Django项目,确保已经设置好了所需的MEDIA_ROOT和MEDIA_URL。MEDIA_ROOT用于指定图片文件的保存路径,MEDIA_URL用于指定图片文件的URL。 ```python # settings.py MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' ``` 2. 在你的模型,创建一个字段来存储上传图片。 ```python # models.py from django.db import models class MyModel(models.Model): image = models.ImageField(upload_to='images/') ``` 3. 在你的表单,添加一个FileField来接收用户上传图片。 ```python # forms.py from django import forms class MyForm(forms.Form): image = forms.ImageField() ``` 4. 在视图函数,处理用户上传图片保存指定路径。 ```python # views.py from django.shortcuts import render from .forms import MyForm def upload_image(request): if request.method == 'POST': form = MyForm(request.POST, request.FILES) if form.is_valid(): image = form.cleaned_data['image'] # 保存图片指定路径 instance = MyModel(image=image) instance.save() return render(request, 'success.html') else: form = MyForm() return render(request, 'upload.html', {'form': form}) ``` 5. 创建一个HTML模板来显示上传表单。 ```html <!-- upload.html --> <form method="post" enctype="multipart/form-data"> {% csrf_token %} {{ form }} <input type="submit" value="Upload"> </form> ``` 这些步骤可以帮助你在Django实现图片上传功能。记得运行迁移命令`python manage.py makemigrations`和`python manage.py migrate`来应用数据库变更。 请注意,上述代码只是一个简单示例,你可能需要根据你的具体需求进行相应的修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值