Django学习14 -- 文件上传

Posted Rolei_zl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django学习14 -- 文件上传相关的知识,希望对你有一定的参考价值。

Django使用 FileField 和 ImageField 定义上传文本文件 和 图片文件。

  1. 初始化文件上传路定义
    setting.py中定义 MEDIA_URL 和 MEDIA_ROOT两个参数
    1)MEDIA_ROOT
          定义文件上传的绝对路径。
    2)MEDIA_URL
          定义文件访问地址,必须以 "/"结尾,默认为 ''
    MEDIA_ROOT = os.path.join(BASE_DIR,"upload")
    MEDIA_URL = '/upload/'
  2. 设置文件上载路径
    from django.conf import settings
    from django.conf.urls.static import static   #调用settings.py设轩
    
    urlpatterns = [
      ... url list
      ... path list
    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  3. FileField

     1)数据库中增加 file 路径存储字段

    -- DB field, image 定义
    field name      field type     field length
    file	        varchar	        50
    
    2)model.py中定义 file 字段
    file = models.FileField(upload_to='file')  # 定义file文件上传路径为 file path + '/file'
    3)admin.py中定义 file 显示
     list_display = (
        ...
        'file',
        ...
     )
  4. ImageField
    1)数据库中增加 image 路径存储字段
    -- DB field, image 定义
    field name      field type     field length
    image	        varchar	        50
    
    2)model.py中定义 image 字段
    image = models.ImageField(upload_to='image')  # 定义image文件上传路径为 file path + '/image'
    3)admin.py中定义 image 显示
     
     list_display = (
        ...
        'image',
        ...
     )
  5. 界面显示
  6.  文件存付诸路径

    > \\upload>tree /F
    
    H:.
    ├─file
    │      50051bcb92bd6.jpg
    │      RequestIP.txt
    │      test.py
    │
    └─image
            50051bcb92bd6.jpg
            50051bcb92bd6_WO67SSi.jpg
            color.png
  7. 待补充内容
    1)一次上传多个文件 -- 使用inline方式将上传文件路径存储在独立的数据表中
    2)文件上传大及类型设置

以上是关于Django学习14 -- 文件上传的主要内容,如果未能解决你的问题,请参考以下文章

java Ftp上传创建多层文件的代码片段

在Django中读取使用html表单上传的Excel文件

[django学习]上传图片

在 Django 后端使用 Clamav 设置文件上传流扫描

JavaWeb学习笔记-14文件上传

django 搭建上传文件系统——细说Form Validation(二)