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类型,类似于一个字典。所以也可以这样获取信息:

 

 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Django获取表单数据,需要按照以下步骤进行: 1. 定义表单类 在Django中,表单数据需要定义表单类。表单类是一个继承自forms.Form的类,它包含表单中需要的所有字段。 例如,如果表单包含姓名和电子邮件字段,表单类可以如下定义: ``` from django import forms class ContactForm(forms.Form): name = forms.CharField() email = forms.EmailField() ``` 2. 在视图函数中处理表单数据 在视图函数中,需要先判断请求方法是否为POST,如果是POST请求,则说明提交了表单数据,需要处理数据。否则,说明是GET请求,需要渲染表单页面。 在POST请求中,可以通过request.POST获取表单数据获取表单数据之后,可以进行验证和处理。 例如,如果要验证表单数据是否合法,可以使用表单类的is_valid()方法,它会返回True或False。 ``` def contact(request): if request.method == 'POST': form = ContactForm(request.POST) if form.is_valid(): # 处理表单数据 name = form.cleaned_data['name'] email = form.cleaned_data['email'] # ... return HttpResponse('Success!') else: form = ContactForm() return render(request, 'contact.html', {'form': form}) ``` 在上面的代码中,如果表单数据合法,可以通过form.cleaned_data获取验证后的数据。如果数据不合法,则会自动返回错误信息。 3. 在模板中渲染表单 最后,在模板中渲染表单。可以使用Django自带的模板标签{{ form.as_p }}将表单渲染成HTML代码。 ``` <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Submit</button> </form> ``` 在上面的代码中,{{ form.as_p }}将表单渲染成段落(p)的形式,每个字段显示为一个标签。{% csrf_token %}是Django自带的防止跨站点请求伪造的标签,必须在表单中包含。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咖啡咖_CoffCa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值