表单_文件上传

本文详细介绍了在Django中实现文件上传的功能,包括一般方法上传文件、使用表单上传文件并限制文件扩展名,特别讨论了上传图片的处理。文章还探讨了如何在服务器端保存文件,以及如何限制上传的文件类型。此外,还展示了如何通过模板和视图函数显示图片,以及视图函数的分层管理策略。
摘要由CSDN通过智能技术生成

文件上传

1、文件上传时网站开发中非常常见的功能

2、当Django处理上传一个文件的时候,文件数据被放在request.FILES
    ⑴因此可以在视图函数中使用request.FILES来获取前端传递上来的文件数据

 

一般方法上传文件

前端代码

前端上传文件也是使用form表单和input标签。只是如果表单时用于上传文件的话,这两个表单需要特定的设置下属性,不然会造成文件无法上传等问题

例1:
⑴编辑模板

<form action="{% url 'index' %}" method="post" enctype="multipart/form-data">
    选择需要上传的文件:<input type="file" name="uploadFile">
    <input type="submit" value="提交">
</form>

注:
在模板文件中,创建一个form表单,需要特别注意的是:
    ⑴在有文件上传的form表单中,method属性必须为post
    ⑵必须指定它的enctype为"multipart/form-data",表明不对字符进行编码
    ⑶input标签的类型为file

例2:
⑴编辑模板

⑵编辑视图

注:
1、Django处理上传一个文件的时候,文件数据被放在request.FILES对象中
    ⑴因此可以在视图函数中使用request.FILES.get()来获取前端传递上来的文件数据
    ⑵request.FILES对象也是一个类字典的数据类型,因此也可以使用get()方法来根据键名来获取里面具体的值
    ⑶这里建议使用get()方法来获取,不要使用["键名"]来获取:get()方法未获取到时返回None,["键名"]未获取到时会报错

2、文件上传至服务器并保存。自己过程是
    ⑴前端将整个文件上传至服务器
    ⑵服务器获取文件并将文件里面的内容读取出来
    ⑶然后将读取出来的文件内容重新写到我们自己指定的路径文件名中:这里如果直接使用with open("abc.txt") as file的话(没有指定文件的打开路径),那么保存的文件会生成在根目录下面。因此在指定路径时使用" . "来代表当前目录,即" .  "代表工程目录(\Web),后面的路径就按着写就好了
    ⑷而不是:服务器获取文件后,将整个文件保存到指定文件(保存的是文件内容而不是整个文件) 

3、这里介绍几个关于上传文件的方法和属性:
    ⑴myFile.read()ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值