zoukankan      html  css  js  c++  java
  • django文件上传处理

    ##### 文件上传的知识点
    
    ###### django之对FileField字段的upload_to的设定
    
    用django开发,经常要处理用户上传的文件, 比如user模型里面如果又个人头像的字段 ImageField等等,而django在FielField字段(包括ImageField)的支持和扩展是做的很好的,首先一个问题,是上传的文件,django是放到哪里去了,(note: 文件流是不会放到数据库里面的,该字段在数据库中只存储路径),django提供了upload_to属性 
         以下介绍upload_to的具体使用方法
    
    ###### 1.最直接的方式,硬编码路径
    
    ```
    # 在项目的settings.py 里面设置MEDIA_ROOT and MEDIA_URL
            
    # 1. media路径
    MEDIA_URL = '/media/'
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    
    
    # 2. 设置完后在项目的URL文件中配置一下
    # 把media做成静态目录
    urlpatterns += static(MEDIA_URL,document_root = MEDIA_ROOT)
    ```
    
    这样配置成功后上传好文件了就会在项目的根目录下面自动创建一个media的文件夹保存上传后的文件了.
    
    ```
    # 模型
    class UesrModel(models.Model):
        username = models.CharField(max_length=32, unique=True)
        password = models.CharField(max_length=256)  # 密码
        email = models.CharField(max_length=64, unique=True)
        # False 代表女
        sex = models.BooleanField(default=False)  # 性别
        icon = models.ImageField(upload_to='icons')  # 头像
        is_delete = models.BooleanField(default=False)  # 是否删除
    ```
    
    最终完成后的效果就是/media/icons/xxx.jpg 的图片路径.
    
    前端页面在提交表单的时候一定要添加enctype属性:
    
    ```
    <form method="post" action="" enctype="multipart/form-data" >
    </form>
    ```
    
    后端获取的时候使用request.FILES.GET('name').例如:
    
    ```
    icon = request.FILES.get('icon')
    ```
  • 相关阅读:
    SQL舊面版與標准版不能互導數據
    今天總算可以繼續寫日記了
    MDAC2.7没有安装,控件不能运行
    希望5月份网络能开通
    SQLITE入门逐步讲解SQLITE命令行(一)
    C#使用SQLite数据库的代码示例
    红外遥控 Arduino 实例
    SQLite数据库是中小站点CMS的最佳选择
    防止 SQLite 数据库被下载的方法
    关于Linux下的Grep命令简介
  • 原文地址:https://www.cnblogs.com/xiaochuichui/p/13280518.html
Copyright © 2011-2022 走看看