Django之Form功能
阿新 • • 發佈:2017-09-04
conf 字典 from password ont views style 示例代碼 sage
一 什麽是Form?什麽是DjangoForm?
Django表單系統中,所有的表單類都作為django.forms.Form的子類創建,包括ModelForm
關於django的表單系統,主要分兩種
基於django.forms.Form:所有表單類的父類
基於django.forms.ModelForm:可以和模型類綁定的Form
Django的Form主要具有一下幾大功能:
- 生成HTML標簽
- 驗證用戶數據(顯示錯誤信息)
- HTML Form提交保留上次提交數據
- 初始化頁面顯示內容
示例代碼:
views.py
from django.forms import Formfrom django.forms import fields class LoginForm(Form): # 正則驗證: 不能為空,6-18 username = fields.CharField( max_length=18, min_length=6, required=True, error_messages={ ‘required‘: ‘用戶名不能為空‘, ‘min_length‘: ‘太短了‘, ‘max_length‘: ‘太長了‘, } ) # 正則驗證: 不能為空,16+ password = fields.CharField(min_length=4,required=True) # email = fields.EmailField() # email = fields.GenericIPAddressField() # email = fields.IntegerField() def login(request): if request.method == "GET": returnrender(request,‘login.html‘) else: obj = LoginForm(request.POST) if obj.is_valid(): # 用戶輸入格式正確 print(obj.cleaned_data) # 字典類型 return redirect(‘http://www.baidu.com‘) else: # 用戶輸入格式錯誤 return render(request,‘login.html‘,{‘obj‘:obj})
urls.py from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r‘^admin/‘, admin.site.urls), url(r‘^login/‘,views.login), #url(r‘^test/‘,views.test), ]
login.html
<form method="POST" action="/login/"> {% csrf_token %} <p> 用戶:<input type="text" name="username"/>{{ obj.errors.username.0 }} </p> <p> 密碼:<input type="password" name="password"/>{{ obj.errors.password.0 }} </p> <input type="submit" value="提交" />{{ msg }} </form>
Django之Form功能