django的表單系統
阿新 • • 發佈:2017-07-07
mes 都是 value sub val 實例 userinfo 需要 展示
1、概述:
django表單系統中,自定義表單類都是以django.forms.Form為父類進行創建;
django中的Form一般有兩種功能:
- 生成特定的HTML標簽
- 後臺驗證用戶提交的數據
2、在views文件中自定義form表單類:
# 自定義form表單類 class Userinfo(forms.Form): name = forms.CharField() password = forms.CharField() email = forms.EmailField() message = forms.CharField()
3、views中的方法:
def login(request): # 創建自定義表單的實例 form_obj = Userinfo() # 將前端表單post的數據,封裝到自定義表單類中 user_info = Userinfo(request.POST) # 驗證前端數據是否合法 if user_info.is_valid(): print True else: print False # 將自定義表單的實例傳到html文件中 return render(request, ‘login.html‘, {‘form_obj‘: form_obj})
4、前端代碼:
<form method="post" action="{% url ‘login‘ %}"> <p>用戶名:{{ form_obj.name }}</p> <p>密碼:{{ form_obj.password }}</p> <p>郵箱:{{ form_obj.email }}</p> <p>備註:{{ form_obj.message }}</p> <input type="submit" value="提交" name="submit"> </form>
5、提取前端提交的數據和捕獲錯誤信息:
def login(request): # 創建自定義表單的實例 form_obj = Userinfo() # 將前端表單post的數據,封裝到自定義表單類中 user_info = Userinfo(request.POST) # 驗證前端數據是否合法 if user_info.is_valid(): # 驗證通過,提取用戶提交的數據 print user_info.clean() else: # 驗證未通過捕獲錯誤提示 print user_info.errors # 將自定義表單的實例傳到html文件中 return render(request, ‘login.html‘, {‘form_obj‘: form_obj})
6、將錯誤提示返回到前端展示:
def login(request): # 創建自定義表單的實例 form_obj = Userinfo() # 將前端表單post的數據,封裝到自定義表單類中 user_info = Userinfo(request.POST) # 驗證前端數據是否合法 if user_info.is_valid(): # 驗證通過,提取用戶提交的數據 print user_info.clean() else: # 驗證未通過捕獲錯誤提示 erro_info = user_info.errors # 用戶提交了數據,返回錯誤信息的同時,也需要把用戶填寫的數據一起返回 return render(request, ‘login.html‘, {‘form_obj‘: user_info, ‘erro_info‘: erro_info}) # 將自定義表單的實例傳到html文件中 return render(request, ‘login.html‘, {‘form_obj‘: form_obj})
django的表單系統