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

猜你喜欢

转载自blog.csdn.net/lm_is_dc/article/details/80527604
今日推荐