04: Form 驗證用戶輸入 & 輸入html
阿新 • • 發佈:2017-12-07
tab 定義 ajax pla value splay turn messages pan
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 importviews.py中定義處理函數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_messagesapp01/forms.py中定義字段驗證規則={‘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>login.html
3、生成HTML更簡單的三種方法,但是耦合性太強,不好定制(不建議使用)
1. { obj.as_p }
2. { obj.as_ul }
3. { obj.as_table }
04: Form 驗證用戶輸入 & 輸入html