表单功能在开发的过程当中有一半的需求是获取数据,另一半校验数据。针对于表单,校验分为前端校验和后端校验:
前端校验就是通过js或者jq脚本对form表单输入的数据进行校验,形象,直观,有利于对用户进行提醒,用户体验好。
后端校验就是在视图当中或者python后端当中对提交的数据进行校验,比较安全。
前端校验我们可以通过各种校验框架进行校验,django推出了自己的form表单类来定义后端校验。
Form表单类是有django定义的,可以自动生成前端form表单代码的表单类,已经完成大部分的校验功能。常用的form表单样式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>p标签格式的userform</p>
{{ Userform.as_p }}
<hr>
<p>ul li格式的userform</p>
{{ Userform.as_ul }}
<hr>
<p>循环自定义的userform</p>
<form action="" class="register_form" method="post">
{% csrf_token %}
<table>
{% for f in Userform %}
<tr>
<td>{{ f.label }}</td>
<td>{{ f }}</td>
</tr>
{% endfor %}
<tr>
<td colspan="2">
横向合并两个单元格
<input type="submit" value="提交">
</td>
</tr>
</table>
</form>
form表单类通用的参数
max_length最大长度
min_length最小长度
必须的要求required为False可以为空,默认为True required必须的要求
label form表单的标签内容
help_text帮助文档
</body>
</html>
Django 的form表单没有携带form外标签,也没有提交按钮,这样的设计更方便开发者修改样式
Form表单类通用的参数:
Max_length 最大长度
Min_length 最小长度
required 为False为可以为空,默认为True
label Form表单的标签内容
Help_text 帮助文档
forms.py代码
from django import forms
class UserForm(forms.Form):#与数据库类似,但不是数据库
username=forms.CharField(required=False,label="用户名",help_text="用户名可以为空")
password=forms.CharField(max_length=12,min_length=6,label="密码")#label是别名的意思
age=forms.IntegerField(label="年龄")
email=forms.EmailField(label="邮箱")
birthday=forms.DateField(label="生日")