標籤:from class char rect 錯誤 for put action integer
一、學習內容及歸納
1 ‘‘‘ 2 Form組件 3 - 對使用者請求的驗證 4 - form 5 - Ajax 6 - 產生HTML代碼 7 8 a. 建立一個類 9 b. 類中建立對應欄位(包括Regex)10 c. GET11 - obj = Fr() 產生HTML代碼12 d. POST13 - obj = Fr(request.POST)14 - if obj.is_valid(): # 判斷是否驗證成功15 obj.cleaned_data16 else:17 obj.errors18 ‘‘‘
二、建立類
1 # 建立類,對應欄位 2 from django import forms 3 from django.forms import fields 4 class F1Form(forms.Form): 5 user = fields.CharField(required=True, 6 min_length=6, 7 max_length=32, 8 error_messages={ 9 ‘required‘: ‘使用者名稱不可為空‘,10 ‘min-length‘: ‘太短‘,11 ‘invalid‘: ‘格式錯誤‘ # 格式錯誤都用invalid12 }13 )14 pwd = fields.CharField(required=True,15 min_length=20,16 error_messages={17 ‘required‘: ‘密碼不可為空‘18 }19 )20 age = fields.IntegerField(required=True)21 email = fields.EmailField(required=True)
三、views.py操作
1 def f1(request): 2 if request.method == "GET": 3 # 產生HTML 4 obj = F1Form() 5 return render(request,‘f1.html‘,{‘obj‘:obj}) 6 else: 7 # u = request.POST.get("user") # 非空,長度6到32 8 # p = request.POST.get("pwd") # 非空,大於32 9 # a = request.POST.get("age") # 非空,整數10 # e = request.POST.get("email") # 非空,郵箱格式11 # print(u,p,a,e)12 obj = F1Form(request.POST)13 # obj.is_valid()是否全部驗證成功14 if obj.is_valid():15 # 使用者提交的資料16 print(obj.cleaned_data)17 return redirect(‘http://www.xiaohuar.com‘)18 else:19 # 驗證錯誤資訊20 print(obj.errors)21 return render(request, ‘f1.html‘, {‘obj‘: obj})
四、HTML操作
1 <form action="/f1.html" method="POST">2 <p>{{obj.user}}{{obj.errors.user.0}}</p>3 <p>{{obj.pwd}}{{obj.errors.pwd.0}}</p>4 <p>{{obj.age}}{{obj.errors.age.0}}</p>5 <p>{{obj.email}}{{obj.errors.email.0}}</p>6 <p><input type="submit" value="提交"></p>7 </form>
西遊之路——python全棧——Django的form組件初識