1.1 Form作用 与 基本使用
1、form 的两个功能,及适用场景
1、功能1: 验证
2、功能2: 生成html标签(默认功能:保留上次提交的值)
3、 新url方式操作(一定要用form方式生成html,避免提交刷新页面,丢失当前页面中填的值)
4、 发Ajax请求时可以不用form生成html标签,仅用form做验证,因为ajax请求本身不刷新页面,不必担心填
的值会丢失,当然使用form生成html也是可以的
2、使用form对 login.html提交密码做简单长度验证
from django.shortcuts import render,HttpResponse,redirectfrom app01.forms import UserFormdef login(request): ???if request.method == ‘GET‘: ???????obj = UserForm() ???????return render(request,‘login.html‘,{‘obj‘:obj}) ???elif request.method == ‘POST‘: ???????obj = UserForm(request.POST) ???????r1 = obj.is_valid() ???????if r1: ???????????print(obj.cleaned_data) ???????else: ???????????print(obj.errors) ???????return render(request,‘login.html‘,{‘obj‘:obj})
from django import formsfrom django.forms import fieldsclass UserForm(forms.Form): ???#1: 这里的name必须要和input框中name的值 ???name = fields.CharField( ???????error_messages={‘required‘:‘用户名不能为空‘}, ???) ???#2: 这里的password必须是input框中name的值 ???password = fields.CharField( ???????min_length=6, ???????max_length=10, ???????error_messages={‘required‘:‘密码不能为空‘, ???????????????????????‘min_length‘:‘密码长度不能小于6‘, ???????????????????????‘max_length‘:‘密码长度不能大于12‘, ???????????????????????} ???)
<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<title></title></head><body> ???<form method="POST" action="/login/"> ???????<p>用户名:<input name="name" type="text">{{ obj.errors.name.0 }}</p> ???????<p>密 码:<input name="password" type="text">{{ obj.errors.password.0 }}</p> ???????<p><input type="submit" value="提交"></p> ???</form></body></html>
3、生成HTML更简单的三种方法,但是耦合性太强,不好定制(不建议使用)
1. { obj.as_p }
2. ?{ obj.as_ul }
3. ?{ obj.as_table }
04: Form 验证用户输入 & 输入html
原文地址:http://www.cnblogs.com/xiaonq/p/8000612.html