图片上传

来源:互联网 发布:jira 数据库配置 编辑:程序博客网 时间:2024/06/05 09:27

1, 定义模型

    class UserLearn(models.Model):        u_name = models.CharField(max_length=16)        u_icon = models.ImageField(verbose_name='图像', upload_to='icons')

ImageField 专门用来上传图像
fieldField 文件上传

(1)verbose_name 别名注释(也可不加,为了让别人一眼就能看出来,没什么用)
(2)upload_to 上传后的目录
(3)这里需要导入专门处理图片的库pillow pip install pillow

2,定义视图

    def douserRegister(request):        username = request.POST.get('username')        usericon = request.FILES["usericon"]        user = UserLearn()        user.u_name = username        user.u_icon = usericon        user.save()        return HttpResponse('用户注册成功')    def userRegister(request):        return render(request,'four/userRegister.html')

username 必须用post请求得到,相当于key键
usericon 相当于value,这里用列表的形式得到,并且用FILES请求

3,定义HTML页面

<form action="{% url 'four:douserRegister' %}" method="post" enctype="multipart/form-data" >        {% csrf_token %}        <span>用户名</span><input type="text" name="username" placeholder="请输入用户名">        <br>        <span>头像</span><input type="file" name="usericon" placeholder="请选择图像">        <br>        <input type="submit" value="注册">    </form>

说明:
(1)图片的上传就是在数据库中保存这个图片的路径,调用的时候调用的是路径
(2)文件的上传必须用enctype上传,不像字符串,建立个管道,把整个文件打包分成很多的小包,进行拆分,传递过去,enctype就是打包加密的
enctype=”multipart/form-data”
(3)图像的传送,类型用file
(4)在form表单中加一个反向解析,跳转页面

原创粉丝点击