Django 获取 Form 表单数据

本文介绍HTML表单元素的使用方法及如何利用Django框架处理这些表单数据,包括文本框、文本域、单选框、多选框、下拉菜单等,并详细讲解了文件上传的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文本框 text

<input type="text" name="username" />

获取文本框中输入的文本 --username --> 输入的内容

username = request.POST.get('username',None)

得到的内容为:输入到文本框的值

文本域 textarea

<textarea name=“textarea”> 默认值</textarea>

获取文本域中输入的文本 --textarea --> 输入的内容 返回字符串

textarea = request.POST.get('textarea',None)

单选框 radio

男:<input type="radio" name="gender" value="0" checked />
女:<input type="radio" name="gender" value="1" />

获取单选框选择的数据--> gender value

gender = request.POST.get('gender',None)

得到的内容为:value的值 0 或 1

**多选框 checkbox **

python:<input type="checkbox" name="favor" value="0" checked  />
mysql:<input type="checkbox" name="favorr" value="1" />
java:<input type="checkbox" name="favorr" value="1" />

注意:获取多选框即多个值用 getlist

favorr = request.POST.getlist('favorr',None)

注意:如果选择多项内容,返回1个列表 ['0','1']

单选下拉菜单 select

 <select name="city">
            <option value="bj" selected>北京</option>
            <option value="sh">上海</option>
            <option value="sz">深圳</option>
</select>

获取的内容为对应的 value,返回1个字符串

city = request.POST.get('city')

多选下拉菜单 select multiple

 <select name="city" multiple>
            <option value="bj">北京</option>
            <option value="sh">上海</option>
            <option value="sz">深圳</option>
</select>

获取的内容为对应的 多个 value,返回1个列表

city = request.POST.getlist('city')

**获取上传的文件名 file **

 <input type="file" name="files"/>

可使用: request.POST.get('files') #只能拿到文件名

一般推荐使用 request.FILES

此时 <input type='file'> 父级 <form> 标签需要加上 enctype="multipart/form-data"

multipart/form-data :把input 标签的内容放到 POST 里面,把 文件放到 FILES里面

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="files"/>
</form>

注意:request.FILES 返回 django.core.files.uploadedfile.InMemoryUploadedFile 对象 ,所以 不要对返回结尾 进行字符串拼接

file = request.FILES.get('files')

仅仅 pint( file) 得到 文件名,如:a.png,因为该类重写了__repr__方法,但它其实是1个对象

具体可查看 from django.core.files.uploadedfile import InMemoryUploadedFile 中的 InMemoryUploadedFile 类

如果只想得到 文件名,一般使用 file.name

转载于:https://my.oschina.net/esdn/blog/894239

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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值