zoukankan      html  css  js  c++  java
  • django Form组件 上传文件

    上传文件

      注意:FORM表单提交文件要有一个参数enctype="multipart/form-data"

    普通上传:

    urls:

    url(r'^f1/',views.f1),
    url(r'^f2/',views.f2),
    

    views: 

    def f1(request):
        if request.method == "GET":
            return render(request,'f1.html')
    
        else:
            import os #导入os模块
            #request.get / post  /FILES方式.get()取值 去文件name=fafafa的值
            file_obj=request.FILES.get("fafafa")  #拿到一个文件对象
            f=open(os.path.join('static',file_obj.name),'wb') #将文件名加入到static目录下
            for chunk in file_obj.chunks():  #chunk块 文件的大小,循环file_obj文件对象.chunks
                f.write(chunk)#写到文件里面去
            f.close()
            # return HttpResponse(".....")
            return render(request,'f1.html')

    html:  

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <form method="POST" action="/f1/" enctype="multipart/form-data">
        {% csrf_token %}
        <input type="text" name="user">
        <input type="file" name="fafafa" >
        <input type="submit" value="提交">
    
    </form>
    </body>
    </html>
    

    Form组件上传:

    views:

    class F2Form(Form):
        user=fields.CharField()
        fafafa=fields.FileField()
    
    
    def f2(request):
        if request.method == "GET":
            obj=F2Form()
            return render(request,'f2.html',{'obj':obj})
        else:
            obj=F2Form(data=request.POST,files=request.FILES)  #以POST的方式获取到文件的所有对象
            if obj.is_valid():  #校验拿取的文件对象
               # print(obj.cleaned_data)
                print(obj.cleaned_data.get('fafafa').name) #校验成功 获取上传文件对象的 fafafa 文件名
                print(obj.cleaned_data.get('fafafa').size) #获取文件对象的fafafa size大小
            return render(request,'f2.html',{'obj':obj})  #错误信息的时候 就返回到前端页面 继续上传  

    html:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <form method="POST" action="/f2/" enctype="multipart/form-data">
        {% csrf_token %}
        {{ obj.user }}
        {{ obj.fafafa }}
        <input type="submit" value="提交">
    </form>
    </body>
    </html>
    

      

  • 相关阅读:
    jQuery 2.0.3 源码分析 回调对象
    JQuery+JQuery ui实现的弹出窗口+遮罩层+拖动+更改大小~!
    2019.8.25 小结
    2019.8.23 小结
    宜中食堂游记
    2019.8.21小结
    2019.8.22小结
    2019.8.19小结
    题解 CF499A 【Watching a movie】
    2019.8.18小结
  • 原文地址:https://www.cnblogs.com/niejinmei/p/7142526.html
Copyright © 2011-2022 走看看