zoukankan      html  css  js  c++  java
  • 十七 Django框架,文件上传

    1、自定义上传【推荐】

    请求对象.FILES.get()获取上传文件的对象
    上传对象.name获取上传文件名称
    上传对象.chunks()获取上传数据包,字节码类型

    html

    复制代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link rel="stylesheet" type="text/css" href="/static/css/tou.css">
    </head>
    <body>
    
    <form action="/bugarticles/" enctype="multipart/form-data" method="post">
        <input type="file" name="shch"/>
        <input type="submit" value="上传"/>
    </form>
    
    
    </body>
    </html>
    复制代码

    逻辑处理

    复制代码
    from django.shortcuts import render,redirect
    import os
    
    #逻辑处理模块
    
    def special(request):
        if request.method == "POST":
            obj = request.FILES.get('shch')                  #获取上传文件对象
    
            f = open(os.path.join("app1", obj.name), 'wb')   #以读写字节模式打开,存在覆盖没有创建
    
            for chunk in obj.chunks():                      #循环文件数据块
                f.write(chunk)                              #写入文件
            f.close()                                       #关闭打开文件
    
        return render(request, 'app1/index.html',locals())
    复制代码

    内置方式

    表单验证模块

    class FileForm(forms.Form):
        ExcelFile = forms.FileField()

    数据库操作Models模块

    复制代码
    from django.db import models
    
    class UploadFile(models.Model):
        userid = models.CharField(max_length = 30)
        file = models.FileField(upload_to = './upload/')
        date = models.DateTimeField(auto_now_add=True)
    复制代码

    逻辑处理模块

    复制代码
    def UploadFile(request):
        uf = AssetForm.FileForm(request.POST,request.FILES)
        if uf.is_valid():
                upload = models.UploadFile()
                upload.userid = 1
                upload.file = uf.cleaned_data['ExcelFile']
                upload.save()
                
                print upload.file
    复制代码
  • 相关阅读:
    airflow分布式部署(四)airflow环境变量与参数配置
    airflow分布式部署(三)redis安装
    airflow分布式部署(二)mysql安装
    airflow分布式部署(一)Python环境
    向Python脚本传参数
    分类器评估
    线性判别分析
    决策树分类器
    K最近邻分类
    半朴素贝叶斯分类器
  • 原文地址:https://www.cnblogs.com/meng-wei-zhi/p/8183142.html
Copyright © 2011-2022 走看看