django上传图片 后台上传和自定义上传

后台管理,上传图片
1.在static中创建media文件夹,media文件夹中再创建一个文件夹用来存放文件。

2.项目设置中上传保存路径

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

3在model中设计模型类

其中  # 类型是ImageField, upload_to 指定的路径是相对于MEDIA_ROOT的
(就是从设置路径的基础中static/media再进入booktext文件夹中)

4.迁移
python manage.py makemigrations
python manage.py migrate

5.登入后台管理者权限admin,就科进行操作。

自定义上传图片
1.创建表单

配置相应的应用的urls和views.py 

思路导向
1输入网址

def show_upload(request):
    return render(request, 'booktest/upload_pic.html')

2出现html页面,
3当点击提交时候

def upload_handle(request):
 """获取上传图片
     pic = request.FILES['pic']获取要上传文件的这个对象
    # print(type(pic))
    # return HttpResponse('ok')
 创建一个文件,pic.name获得这个文件的名称
    save_path = '%s/booktest/%s'%(settings.MEDIA_ROOT,pic.name)

    with open(save_path,'wb') as f:
        for content in pic.chunks():
            # 获取文件内容写到穿创建文件中
            # pic.chunks() 拿到这个文件的内容
            f.write(content)

    PicTest.objects.create(goods_pic='booktest/%s'%pic.name)
在数据库中保存上传记录
    return HttpResponse('ok')返回

返回的路由的第一个视图函数









  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Django 中,可以使用 `FileField` 或 `ImageField` 字段来处理文件上传,并且可以通过 `upload_to` 参数指定上传文件的保存位置。要在 Django 中显示文件类型,可以通过以下步骤实现: 1. 在你的模型中,使用 `FileField` 或 `ImageField` 字段来处理文件上传。例如: ```python from django.db import models class MyModel(models.Model): my_file = models.FileField(upload_to='uploads/') ``` 2. 在模板中,可以使用 `{{ object.my_file.content_type }}` 来获取文件类型。例如,在模板中显示文件类型的示例代码如下: ```html {{ object.my_file.content_type }} ``` 3. 如果你想在后台管理界面中显示文件类型,可以自定义管理界面的模型展示。首先,创建一个 `ModelAdmin` 类,并重写 `list_display` 方法来显示文件类型。在 `list_display` 方法中,使用 `file_type` 方法获取文件类型,并将其添加到展示列表中。示例代码如下: ```python from django.contrib import admin class MyModelAdmin(admin.ModelAdmin): list_display = ('my_file', 'display_file_type') def display_file_type(self, obj): return obj.my_file.file.content_type display_file_type.short_description = 'File Type' admin.site.register(MyModel, MyModelAdmin) ``` 在上述示例代码中,我们定义了一个自定义的 `display_file_type` 方法,该方法获取上传文件的类型,并将其作为字段添加到展示列表中。 通过以上步骤,你就可以在 Django 中显示文件类型了。请注意,为了获取文件类型,你可能需要安装 `python-magic` 或 `python-magic-bin` 包,并在你的项目中进行相关配置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值