Django框架下的form表单提交数据(及文件)获取的方法

目录

一、文件的提交和获取

1、html代码:        

2、django代码:

二、文本的提交和获取

html:

urls.py:

​编辑 views.py:

​编辑

 结果:


一、文件的提交和获取

        一般思路为,页面中使用form元素包裹input,其中input元素的type = "file",然后form里面加个按钮就可以提交了。

        然后在Django的views视图函数里面对提交的文件进行获取即可。

1、html代码:        

<form action="/OnUploadFile" method="post" enctype="multipart/form-data">
             {% csrf_token %}
   <input class = "row" type = "file" name = "fileUpLoad" >
   <p> <button type ="submit">上传文件</button></p>
</form>

有几个注意点:

  • form的action指向所提交的目标页面(可以不存在这个页面,但是在django里面要设置这个url,然后可以绑定用来处理提交数据的视图函数 如下图:) 
  • method必须为"post"
  • enctype="multipart/form-data"不能少了
  • input标签必须要把type设为"file"
  • input标签必须得有name否则获取不到数据

2、django代码:

def OnUploadFile(req:"HttpRequest"):
    file = req.FILES.get("fileUpLoad")#获取文件
    print(file)
    return HttpResponse("ok")

 直接遍历file可以获得每一行的字符串:

 #文件存储
        fname = FileStoreName(file)
        with open('./datasets/'+fname,'wb') as f :
            for i in file:
                f.write(i)

二、文本的提交和获取

一般采用request.POST.get(name)方法获取提交的文本:

html:

<form action="/OnUploadFile" method="post" >
    {% csrf_token %}
    <input class = "row" type = "text" name = "a" >
        <p> <button type ="submit">提交</button></p>
</form>

urls.py:

 views.py:

 结果:

 成功。

实际上request.GET和POST是QueryDict类型,类似于一个字典。所以也可以这样获取信息:

猜你喜欢

转载自blog.csdn.net/HowToPause/article/details/127457904