form在django中的作用:
1、可以用于自动生成form的html
2、数据校验
3、与model一在一起使用、可以大的方便数据驱动型网站的开发
编程中有许多的东西是“不可描述”的、只有动手去操作一下才会有感觉、下面是一个form使用的入门级例子
1、定义form类:
from django import forms class NameForm(forms.Form): your_name = forms.CharField(label='Your name', max_length=100)
2、在template中使用form:
<html> <head> <title>your name</title> <meta charset="utf8"/> </head> <body> <form action={% url 'your-name' %} method="POST"> {% csrf_token %} {{ form }} <input type="submit" value="submit"> </form> </body> </html>
3、创建视图:
from django.shortcuts import render from django.http import HttpResponse from app01.forms import NameForm #from django.http import views # Create your views here. def yourName(request): """ """ if request.method == 'POST': #根据POST上来的数据创建form表单 form = NameForm(request.POST) #校验表单的数据 if form.is_valid(): #返回一个类似 Hello xxx的页面 return HttpResponse('Hello {0}'.format(form.cleaned_data['your_name'])) #如果不是POST那么就让用户填写表单数据 return render(request,'app01/your-name-form.html',context={'form':NameForm()})
4、防问your-name页面:
get的方式访问页面
填写名字到输入框
提交表单数据
总结:
1、上面的例子中用于了form的两个工能,一个是自动渲染html标签、另一个是数据校验
页面的html代码如下:
<html> <head> <title>your name</title> <meta charset="utf8"/> </head> <body> <form action=/app01/yourname method="POST"> <input type='hidden' name='csrfmiddlewaretoken' value='H1wmfUgQ6yMjJyEAjhnjnlHXOSjxLUKlhyjEoJBqArgQJaTTKygpxcL6ZIjXsDom' /> <tr><th><label for="id_your_name">Your name:</label></th><td><input type="text" name="your_name" maxlength="100" required id="id_your_name" /></td></tr> <input type="submit" value="submit"> </form> </body> </html>
数据检验
if form.is_valid(): #返回一个类似 Hello xxx的页面 return HttpResponse('Hello {0}'.format(form.cleaned_data['your_name']))
----------------------------------------------------------------------------------------------