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')返回

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









你可能感兴趣的:(DJango)