1. 程式人生 > >Django之Form功能

Django之Form功能

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 Form
from 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": return
render(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功能