在web日常中表单是必不可少的,处理数据的输入与交互在web站点中是非常重要的,Django提供了一系列的工具和库来帮助您构建表单来接收网站访客的输入,然后处理以及响应这些输入。
表单在HTML使用<form></form>
标签包围,它包括很多表单标签,例如输入框、单选和多选框、文本输入域等,处理表单是通过get或post方法来传输数据,在表单的action中指定一个URL,数据会提交到这个URL来进行响应,其中get会明文以键值方式,通过URL地址来发送表单中的数据。
Django中使用表单是非常简单的,甚至可以不用去写任何的HTML,Django封装大量的常用表单,只需要配置表单的相关选项即可使用。
在使用Django表单前需要创建相关表单的类,例如:
from django import forms
class ArticleForm(forms.Form):
title = forms.CharField(label="title", max_length=100)
content = forms.CharField(widget=forms.Textarea(attrs={'rows':'5'}))
引入Django表单类forms,创建表单类,创建字段并设置字段的属性和widget,上边定义了两个字段。
def test_form(request):
if request.method == 'POST':
form = ArticleForm(request.POST)
if form.is_valid():
return HttpResponseRedirect("/show/")
else:
form = ArticleForm()
return render(request, "test_form.html", {'form': form})
def show(request):
if request.method == "POST":
# print(request.POST)
title = request.POST.get('title')
content = request.POST.get('content')
return HttpResponse("title:"+title+"</br>content:"+content)
test_form
负责创建表单,form = ArticleForm({'title':'11','content':'222'})
可以预填充表单的内容。
show
用来响应并接收表单发来的数据,用来展示数据。
path("test_form/", views.test_form, name="test_form"),
path("show/", views.show, name="show"),
然后运行Django的服务器,打开http://127.0.0.1:8000/myapp/test_form/
,提交数据,在show的页面显示数,类似下边:
title:11
content:222
至此,一个表单的完整使用就基本设置完成,表单类和飙到的小部件还有很多的属性,这里就不一一介绍了,可以参考下边的网址。
参考网站: