django之Form元件補充

2022-08-16 02:30:25 字數 2487 閱讀 3650

自定義驗證規則

方法一:

from django.forms import form

from django.forms import widgets

from django.forms import fields

from django.core.validators import regexvalidator

class myform(form):

user = fields.charfield(

validators=[regexvalidator(r'^[0-9]+$', '請輸入數字'), regexvalidator(r'^159[0-9]+$', '數字必須以159開頭')],

)

方法二

import

refrom django.forms import

form

from django.forms import

widgets

from django.forms import

fields

from django.core.exceptions import

validationerror

#自定義驗證規則

defmobile_validate(value):

mobile_re = re.compile(r'

^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]$')

ifnot

mobile_re.match(value):

raise validationerror('

手機號碼格式錯誤')

class

publishform(form):

title = fields.charfield(max_length=20,

min_length=5,

error_messages=,

widget=widgets.textinput(attrs=))

#使用自定義驗證規則

phone = fields.charfield(validators=[mobile_validate, ],

error_messages=,

widget=widgets.textinput(attrs=))

email = fields.emailfield(required=false,

error_messages=,

widget=widgets.textinput(attrs=))

方法三:

from django.forms import

form

from django.forms import

fields

from django.forms import

widgets

models

from django.core.validators import

regexvalidator

class

userinfoform(form):

name=fields.charfield(

required=true,

min_length=6,

max_length=12,

)#使用者提交是字串

email=fields.emailfield()#

使用者提交是字串 正則

phone=fields.charfield(

#1.通過物件(支援正規表示式)

#validators=[regexvalidator(r'^[0-9]+$', '請輸入數字'), regexvalidator(r'^159[0-9]+$', '數字必須以159開頭')]

#2.通過函式

#validators=([mobile_validate,])

#在當前類中 方法名稱有要求

#validators=([clean_phone])

)#自定義驗證規則 正則

def clean_phone(self):

# 去取使用者提交的值:可能是錯誤的,可能是正確

value = self.cleaned_data['phone']

mobile_re = re.compile(r'^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]$')

if not mobile_re.match(value):

raise validationerror('手機號碼格式錯誤')

if models.userinfo.objects.filter(phone=value).count():

raise validationerror('手機號碼已經存在')

django中使用Form元件

內容 1.form元件介紹 2.form元件常用字段 3.form元件校驗功能 4.form元件內建正則校驗 參考 1.form元件介紹 1 之前的web開發模式 以註冊為例 關於校驗 2 關於form元件 之前在html頁面中利用form表單向後端提交資料時,都會寫一些獲取使用者輸入的標籤並且用f...

Django的form元件 正則校驗

from django.core.validators import regexvalidator 匯入正則校驗器regexvalidator class userinfo forms.form username forms.charfield label 使用者名稱 min length 6,re...

django框架中的form元件的用法

先導入 from django.forms import form from django.forms import fields from django.forms import widgets from django.core.validators import regexvalidator f...