没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
2页
本文实例讲述了Django框架文件上传与自定义图片上传路径、上传文件名操作。分享给大家供大家参考,具体如下: 文件上传 1、创建上传文件夹 在static文件夹下创建uploads用于存储接收上传的文件 在settings中配置, MEDIA_ROOT=os.path.join(BASE_DIR,r'static/uploads') 2、定义上传表单 <form action={% url 'app:do_upload' %} method=post enctype=multipart/form-data> 文件数据存储在request.FILES属性中 文件上传必须使用P
资源推荐
资源详情
资源评论
Django框架文件上传与自定义图片上传路径、上传文件名操作框架文件上传与自定义图片上传路径、上传文件名操作
分析分析
本文实例讲述了Django框架文件上传与自定义图片上传路径、上传文件名操作。分享给大家供大家参考,具体如下:
文件上传文件上传
1、创建上传文件夹、创建上传文件夹
在static文件夹下创建uploads用于存储接收上传的文件
在settings中配置,
MEDIA_ROOT=os.path.join(BASE_DIR,r'static/uploads')
2、定义上传表单、定义上传表单
<form action="{% url 'app:do_upload' %}"
method="post" enctype="multipart/form-data">
文件数据存储在request.FILES属性中
文件上传必须使用POST请求方式
<form method='post' action='x' enctype='multipart/form-data'>
{% csrf_token %}
<input type='file' name='icon'>
<input type='submit' value='上传'>
<form>
3、手动存储文件、手动存储文件
存储到关联用户的表字段中
def savefIcon(request):
if request.method == 'POST'
f = request.FILES['icon'] filePath = os.path.join(settings.MEDIA_ROOT,f.name)
with open(filePath,'wb') as fp:
for part in f.chunks():
fp.write(part)
4、、django内置存储内置存储
ImageField
要导入pillow模块
FileField
从request.FILES将文件获取出来,直接赋值给字段
存储的时候,数据库存储的是路径
存储在MEDIA_ROOT
自定义图片上传路径和上传文件名自定义图片上传路径和上传文件名
图片上传中,如果不对上传的文件名做处理,很容易引起文件名重复,这会覆盖之前上传的图片,django提供了自定义上传文
件名的方法。
def generate_filename(self, instance, filename):
"""
Apply (if callable) or prepend (if a string) upload_to to the filename,
then delegate further processing of the name to the storage backend.
Until the storage layer, all file paths are expected to be Unix style
(with forward slashes).
"""
if callable(self.upload_to):
filename = self.upload_to(instance, filename)
else:
dirname = datetime.datetime.now().strftime(self.upload_to)
filename = posixpath.join(dirname, filename)
return self.storage.generate_filename(filename)
资源评论
weixin_38678796
- 粉丝: 4
- 资源: 934
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功