Django---form表单提交文件


1.from表单上传文件 

知识点补充:
1.发送文件 :
    form 必须加入enctype="multipart/form-data"
2.上传文件标签:
<input type="file" name="img" >
3.在前段通过form 传过来的值为可迭代对象
4.

 创建url 

from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^upload.html$', views.upload),

]

 

增加view

from django.shortcuts import render
from django.shortcuts import HttpResponse

# Create your views here.

from app01 import models
def upload(request):
    if request.method=="GET":
        return render(request,'upload.html')
    else:
        user=request.POST.get('user')
        img=request.FILES.get('img')
        print(img.name)
        print(img.size)                              #img 有大小 名字等
     '''写入文件'''
       f=open(img.name,'wb')                       
        for line in img.chunks():                  #img.chunks()为可迭代对象
            f.write(line)        
        f.close()
        return HttpResponse('.........')

 

  写一个html  

制定上传图标:

1.调制上传 input 标签的透明度

2.设置 position位置: position: absolute; top: 0;left: 0

3.在input上方加入一个标签,引入Bootstrap,调制样式   例如: <a class="glyphicon glyphicon-plane">上传</a>   

4.把a标签,和input标签加入一个div标签  给div设置 ------>"position: relative"

 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.css">
</head>
<body>
<form action="upload.html" method="POST" enctype="multipart/form-data">
    {% csrf_token %}
    <input type="text" name="user" />
    <div style="position: relative">
        <a class="glyphicon glyphicon-plane">上传</a>
         <input type="file" name="img" style="opacity: 0; position: absolute; top: 0;left: 0 "/>
    </div>

    <input type="submit" value="提交">
</form>

</body>
<script src="/static/jquery-3.1.1.js"></script>
<script src="/static/bootstrap-3.3.7-dist/js/bootstrap.js"></script>
</html>

 

form表单加入验证:

  view  

from django.shortcuts import render
from django.shortcuts import HttpResponse

# Create your views here.
from django import forms
from django.forms import fields
class Uploadform(forms.Form):
    user=fields.CharField(
        max_length=32,
        required=True,
    )
    img=fields.FileField()

from app01 import models
def upload(request):
    if request.method=="GET":
        return render(request,'upload.html')
    else:
        obj=Uploadform(request.POST,request.FILES)
        if obj.is_valid():
            user=obj.cleaned_data['user']
            img=obj.cleaned_data['img']
            f=open(img.name,'wb')
            for line in img.chunks():
                f.write(line)
            f.close()
        return HttpResponse('.........')

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM