DjangoForm 提交驗證

2022-03-17 12:25:20 字數 3016 閱讀 8880

1.建立模版                     -- class loginform(forms.form):....

2.將請求交給模版,建立乙個物件 -- obj = loginform(request.post)

3.進行驗證 -- obj.is_valid()

4.獲取正確的資訊 -- obj.clean()

5.獲取錯誤的資訊 -- obj.errors

建立乙個 static 資料夾,放入 jquery.min.js

修改 settings.py 檔案

注釋下面語句

#'django.middleware.csrf.csrfviewmiddleware',

在檔案最後新增

staticfiles_dirs=[

os.path.join(base_dir, "static"),

]

在 urls.py 內容如下

from django.contrib import admin

from django.urls import path

urlpatterns = [

path('admin/', admin.site.urls),

path('login.html', views.login),

]

在 views.py 中修改

class loginform(forms.form):

# 定義元素,需要跟前端提交的名字一致,error_messages 自定義錯誤資訊

user = forms.charfield(min_length=6, error_messages=)

email = forms.emailfield(error_messages=)

def login(request):

if request.method == 'get':

# 自動生成 input 標籤

obj = loginform()

return render(request, 'login.html', )

elif request.method == 'post':

# 獲取 post 提交過來的所有值

obj = loginform(request.post)

# 判斷值是否正確

if obj.is_valid():

# 獲取正確的值

value_dict = obj.clean()

print(value_dict)

else:

# 如果錯誤,錯誤資訊通過 obj 返回前端

pass

return render(request, 'login.html', )

在 templates 資料夾下新增 login.html 檔案

當輸入的郵箱不正確時,在高階瀏覽器下後顯示如下結果

在 urls.py 上修改

path('login_ajax.html', views.login_ajax),
在 views.py 上修改

# 郵箱格式和使用者名稱長度都不正常時,返回給瀏覽器的是:], "user": }, "data": null, "status": false}

# 定義編碼類jsoncustomencoder並重寫例項的default函式,對特殊型別進行處理,其餘型別繼續使用父類的解析。

from django.core.validators import validationerror

class jsoncustomencoder(json.jsonencoder):

def default(self, field):

# 使用 isinstance() 函式來判斷 field 是否是 validationerror 型別

if isinstance(field, validationerror):

# field 為 ['郵箱格式錯誤'] 和 ['使用者長度不能小於6']

# field.code 為 min_length 和 invalid

# field.message 為 郵箱格式錯誤 和 使用者長度不能小於6

return

else:

return json.jsonencoder.default(self, field)

新增 login_ajax.html 檔案

js表單提交驗證

數字驗證 最好使用正規表示式哈!驗證只能輸入數字.function check validate1 value return false 驗證只能輸入字母.數字和下劃線.function check validate2 value return false function check valida...

jsp 網頁提交驗證

test.jsp 第乙個頁面 page contenttype text html string hint string request.getattribute hint please input a number hint two.jsp page contenttype text html s...

flex表單提交驗證

一 定義驗證條件,如 source為要繫結的文字框,trigger為繫結提交的按鈕,triggerevent為提鈕的事件 requiredfielderror為提示資訊 trigger triggerevent click requiredfielderror 必須輸入房號 trigger trig...