标签:避免 http 基本使用 require django val rom data obj
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,redirect from app01.forms import UserForm def 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 forms from django.forms import fields class 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 }
标签:避免 http 基本使用 require django val rom data obj
原文地址:http://www.cnblogs.com/xiaonq/p/8000612.html