zoukankan      html  css  js  c++  java
  • django_5:表单1——文件上传

    上传文件1

    class UserForm(forms.Form):
        name = forms.CharField()
        headImg = forms.FileField()
    def regist(req):
        if req.method == 'POST':
            uf = UserForm(req.POST, req.FILES)
            if uf.is_valid():
                print(uf.cleaned_data['name'])   #通过clean_data获取字段
                print(req.FILES)                            #类字典对象<MultiValueDict: {'headImg': [<InMemoryUploadedFile: Chrysanthemum.jpg (image/jpeg)>]}>
    print(uf.cleaned_data['headImg'])                  #上传文件的名字
                print(uf.cleaned_data['headImg'].name)               #上传文件的名字
                print(uf.cleaned_data['headImg'].size)
                fp = open('/tmp/img/'+uf.cleaned_data['headImg'].name, 'wb')  #打开二进制文件用于保存
                img = uf.cleaned_data['headImg'].read()
                fp.write(img)
                fp.close()
                return HttpResponse('ok')                      #成功返回ok,不会执行到下方的return
        else:
            uf = UserForm()                               #当传入空,即绑定失败,被执行,然后执行后边,第一次请求时也会被执行
        return render(req, 'regist.html', {'uf':uf})                

    上传文件2:使用数据库

    models.py

    class User(models.Model):
        name = models.CharField(max_length=30)
        sex = models.CharField(max_length=1, choices=sex_choices)
        headImg = models.FileField(upload_to='./upload')
    
        def __str__(self):
            return self.name

    设置admin.py,使可以在admin管理界面操作。

    from django.contrib import admin
    from blog.models import User     #引入应用的表
    
    # Register your models here.
    admin.site.register(User)       #把User注册到admin

    数据库中字段保存文件路径,默认会在工程下生成定义的upload目录,可以在setting.py中修改,不知道修改哪个?

    修改保存路径后,之前上传过的怎么办,复制过去并修改,还是不变?

    能不能通过把两个方法合并?通过自己的web上传到数据

  • 相关阅读:
    一步一步做高性能服务器(C++) -- Day 3
    一步一步做高性能服务器(C++) -- Day 2
    一步一步做高性能服务器(C++) -- Day 1
    一步一步做高性能服务器(C++) -- Day 0
    HDU ACMSTEPS 1.3.4
    铭记
    子窗口与主窗口分开处理
    autoit小贴士
    autoit使用WMIC获取硬件信息
    Windows WMIC命令使用详解
  • 原文地址:https://www.cnblogs.com/daduryi/p/6841346.html
Copyright © 2011-2022 走看看